diff --git a/openpype/hosts/traypublisher/api/plugin.py b/openpype/hosts/traypublisher/api/plugin.py index 202664cfc6..a5d08c2967 100644 --- a/openpype/hosts/traypublisher/api/plugin.py +++ b/openpype/hosts/traypublisher/api/plugin.py @@ -1,3 +1,4 @@ +from openpype.lib.attribute_definitions import BoolDef from openpype.pipeline import ( Creator, CreatedInstance @@ -70,8 +71,10 @@ class SettingsCreator(TrayPublishCreator): folders=False, extensions=self.extensions, allow_sequences=self.allow_sequences, + single_item=not self.allow_multiple_items, label="Filepath", - ) + ), + BoolDef("allow_review", label="Reviewable", default=True) ] @classmethod @@ -92,6 +95,8 @@ class SettingsCreator(TrayPublishCreator): "detailed_description": item_data["detailed_description"], "extensions": item_data["extensions"], "allow_sequences": item_data["allow_sequences"], + "allow_multiple_items": item_data["allow_multiple_items"], + "allow_review": item_data["allow_review"], "default_variants": item_data["default_variants"] } ) diff --git a/openpype/settings/defaults/project_settings/traypublisher.json b/openpype/settings/defaults/project_settings/traypublisher.json index d3e8028cdb..e59200a13b 100644 --- a/openpype/settings/defaults/project_settings/traypublisher.json +++ b/openpype/settings/defaults/project_settings/traypublisher.json @@ -10,7 +10,9 @@ ], "description": "Backup of a working scene", "detailed_description": "Workfiles are full scenes from any application that are directly edited by artists. They represent a state of work on a task at a given point and are usually not directly referenced into other scenes.", - "allow_sequences": true, + "allow_sequences": false, + "allow_multiple_items": false, + "allow_review": false, "extensions": [ ".ma", ".mb", @@ -44,6 +46,8 @@ "description": "Clean models", "detailed_description": "Models should only contain geometry data, without any extras like cameras, locators or bones.\n\nKeep in mind that models published from tray publisher are not validated for correctness. ", "allow_sequences": false, + "allow_multiple_items": true, + "allow_review": false, "extensions": [ ".ma", ".mb", @@ -68,6 +72,8 @@ "description": "Geometry Caches", "detailed_description": "Alembic or bgeo cache of animated data", "allow_sequences": true, + "allow_multiple_items": true, + "allow_review": false, "extensions": [ ".abc", ".bgeo", @@ -90,6 +96,8 @@ "description": "Footage Plates", "detailed_description": "Any type of image seqeuence coming from outside of the studio. Usually camera footage, but could also be animatics used for reference.", "allow_sequences": true, + "allow_multiple_items": true, + "allow_review": true, "extensions": [ ".exr", ".png", @@ -111,6 +119,8 @@ "description": "Rendered images or video", "detailed_description": "Sequence or single file renders", "allow_sequences": true, + "allow_multiple_items": true, + "allow_review": true, "extensions": [ ".exr", ".png", @@ -133,6 +143,8 @@ "description": "3d Camera", "detailed_description": "Ideally this should be only camera itself with baked animation, however, it can technically also include helper geometry.", "allow_sequences": false, + "allow_multiple_items": true, + "allow_review": false, "extensions": [ ".abc", ".ma", @@ -156,6 +168,8 @@ "description": "Single image", "detailed_description": "Any image data can be published as image family. References, textures, concept art, matte paints. This is a fallback 2d family for everything that doesn't fit more specific family.", "allow_sequences": false, + "allow_multiple_items": true, + "allow_review": true, "extensions": [ ".exr", ".jpg", @@ -178,6 +192,8 @@ "description": "Sparse volumetric data", "detailed_description": "Hierarchical data structure for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids", "allow_sequences": true, + "allow_multiple_items": true, + "allow_review": false, "extensions": [ ".vdb" ] @@ -195,6 +211,8 @@ "description": "Matchmoving script", "detailed_description": "Script exported from matchmoving application to be later processed into a tracked camera with additional data", "allow_sequences": false, + "allow_multiple_items": true, + "allow_review": false, "extensions": [] }, { @@ -206,6 +224,8 @@ "description": "CG rig file", "detailed_description": "CG rigged character or prop. Rig should be clean of any extra data and directly loadable into it's respective application\t", "allow_sequences": false, + "allow_multiple_items": false, + "allow_review": false, "extensions": [ ".ma", ".blend", @@ -224,6 +244,8 @@ "description": "Simple Unreal Engine texture", "detailed_description": "Texture files with Unreal Engine naming conventions", "allow_sequences": false, + "allow_multiple_items": true, + "allow_review": false, "extensions": [] } ] diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_traypublisher.json b/openpype/settings/entities/schemas/projects_schema/schema_project_traypublisher.json index 55c1b7b7d7..08c95609c0 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_traypublisher.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_traypublisher.json @@ -67,6 +67,16 @@ "label": "Allow sequences", "type": "boolean" }, + { + "key": "allow_multiple_items", + "label": "Allow multiple items", + "type": "boolean" + }, + { + "key": "allow_review", + "label": "Allow review", + "type": "boolean" + }, { "type": "list", "key": "extensions",