diff --git a/openpype/plugins/publish/collect_subset_group.py b/openpype/plugins/publish/collect_subset_group.py
index 60c1c04e70..075699e304 100644
--- a/openpype/plugins/publish/collect_subset_group.py
+++ b/openpype/plugins/publish/collect_subset_group.py
@@ -24,28 +24,22 @@ class CollectSubsetGroup(pyblish.api.ContextPlugin):
order = pyblish.api.CollectorOrder + 0.495
label = "Collect Subset Group"
+ # Defined in OpenPype settings
+ subset_grouping_profiles = None
+
def process(self, instance):
"""Look into subset group profiles set by settings.
Attribute 'subset_grouping_profiles' is defined by OpenPype settings.
"""
- # TODO: Move this setting to this Collector instead of Integrator
- project_settings = instance.context.data["project_settings"]
- subset_grouping_profiles = (
- project_settings["global"]
- ["publish"]
- ["IntegrateAssetNew"]
- ["subset_grouping_profiles"]
- )
-
# Skip if 'subset_grouping_profiles' is empty
- if not subset_grouping_profiles:
+ if not self.subset_grouping_profiles:
return
# Skip if there is no matching profile
filter_criteria = self.get_profile_filter_criteria(instance)
- profile = filter_profiles(subset_grouping_profiles,
+ profile = filter_profiles(self.subset_grouping_profiles,
filter_criteria,
logger=self.log)
if not profile:
diff --git a/openpype/plugins/publish/integrate_new.py b/openpype/plugins/publish/integrate_new.py
index 05cbb357e3..4706d4d093 100644
--- a/openpype/plugins/publish/integrate_new.py
+++ b/openpype/plugins/publish/integrate_new.py
@@ -110,7 +110,6 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
# Attributes set by settings
template_name_profiles = None
- subset_grouping_profiles = None
def process(self, instance):
diff --git a/openpype/settings/defaults/project_settings/global.json b/openpype/settings/defaults/project_settings/global.json
index 30a71b044a..528df111f0 100644
--- a/openpype/settings/defaults/project_settings/global.json
+++ b/openpype/settings/defaults/project_settings/global.json
@@ -20,6 +20,17 @@
],
"skip_hosts_headless_publish": []
},
+ "CollectSubsetGroup": {
+ "subset_grouping_profiles": [
+ {
+ "families": [],
+ "hosts": [],
+ "task_types": [],
+ "tasks": [],
+ "template": ""
+ }
+ ]
+ },
"ValidateEditorialAssetName": {
"enabled": true,
"optional": false
@@ -193,15 +204,6 @@
"tasks": [],
"template_name": "render"
}
- ],
- "subset_grouping_profiles": [
- {
- "families": [],
- "hosts": [],
- "task_types": [],
- "tasks": [],
- "template": ""
- }
]
},
"CleanUp": {
diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_publish.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_publish.json
index 12043d4205..ab968037f6 100644
--- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_publish.json
+++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_global_publish.json
@@ -39,6 +39,61 @@
}
]
},
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "CollectSubsetGroup",
+ "label": "Collect Subset Group",
+ "is_group": true,
+ "children": [
+ {
+ "type": "list",
+ "key": "subset_grouping_profiles",
+ "label": "Subset grouping profiles",
+ "use_label_wrap": true,
+ "object_type": {
+ "type": "dict",
+ "children": [
+ {
+ "type": "label",
+ "label": "Set all published instances as a part of specific group named according to 'Template'.
Implemented all variants of placeholders [{task},{family},{host},{subset},{renderlayer}]"
+ },
+ {
+ "key": "families",
+ "label": "Families",
+ "type": "list",
+ "object_type": "text"
+ },
+ {
+ "type": "hosts-enum",
+ "key": "hosts",
+ "label": "Hosts",
+ "multiselection": true
+ },
+ {
+ "key": "task_types",
+ "label": "Task types",
+ "type": "task-types-enum"
+ },
+ {
+ "key": "tasks",
+ "label": "Task names",
+ "type": "list",
+ "object_type": "text"
+ },
+ {
+ "type": "separator"
+ },
+ {
+ "type": "text",
+ "key": "template",
+ "label": "Template"
+ }
+ ]
+ }
+ }
+ ]
+ },
{
"type": "dict",
"collapsible": true,
@@ -603,52 +658,6 @@
}
]
}
- },
- {
- "type": "list",
- "key": "subset_grouping_profiles",
- "label": "Subset grouping profiles",
- "use_label_wrap": true,
- "object_type": {
- "type": "dict",
- "children": [
- {
- "type": "label",
- "label": "Set all published instances as a part of specific group named according to 'Template'.
Implemented all variants of placeholders [{task},{family},{host},{subset},{renderlayer}]"
- },
- {
- "key": "families",
- "label": "Families",
- "type": "list",
- "object_type": "text"
- },
- {
- "type": "hosts-enum",
- "key": "hosts",
- "label": "Hosts",
- "multiselection": true
- },
- {
- "key": "task_types",
- "label": "Task types",
- "type": "task-types-enum"
- },
- {
- "key": "tasks",
- "label": "Task names",
- "type": "list",
- "object_type": "text"
- },
- {
- "type": "separator"
- },
- {
- "type": "text",
- "key": "template",
- "label": "Template"
- }
- ]
- }
}
]
},