From 21076a76bf45222fae054ac5fdbd6472cd9f705c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 21 May 2021 11:10:09 +0200 Subject: [PATCH 1/3] removed review creator --- .../tvpaint/plugins/create/create_review.py | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 openpype/hosts/tvpaint/plugins/create/create_review.py diff --git a/openpype/hosts/tvpaint/plugins/create/create_review.py b/openpype/hosts/tvpaint/plugins/create/create_review.py deleted file mode 100644 index 88b039c8e4..0000000000 --- a/openpype/hosts/tvpaint/plugins/create/create_review.py +++ /dev/null @@ -1,19 +0,0 @@ -from avalon.tvpaint import pipeline -from openpype.hosts.tvpaint.api import plugin - - -class CreateReview(plugin.Creator): - """Review for global review of all layers.""" - name = "review" - label = "Review" - family = "review" - icon = "cube" - defaults = ["Main"] - - def process(self): - instances = pipeline.list_instances() - for instance in instances: - if instance["family"] == self.family: - self.log.info("Review family is already Created.") - return - super(CreateReview, self).process() From d978c9c22960174a9e914f321f8e6fa5161c7ace Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 21 May 2021 11:13:20 +0200 Subject: [PATCH 2/3] always create review instance if is not in instances of workfile metadata --- .../plugins/publish/collect_instances.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/openpype/hosts/tvpaint/plugins/publish/collect_instances.py b/openpype/hosts/tvpaint/plugins/publish/collect_instances.py index 27bd8e9ede..61cf7eb780 100644 --- a/openpype/hosts/tvpaint/plugins/publish/collect_instances.py +++ b/openpype/hosts/tvpaint/plugins/publish/collect_instances.py @@ -17,6 +17,20 @@ class CollectInstances(pyblish.api.ContextPlugin): json.dumps(workfile_instances, indent=4) )) + # Backwards compatibility for workfiles that already have review + # instance in metadata. + review_instance_exist = False + for instance_data in workfile_instances: + if instance_data["family"] == "review": + review_instance_exist = True + break + + # Fake review instance if review was not found in metadata families + if not review_instance_exist: + workfile_instances.append( + self._create_review_instance_data(context) + ) + for instance_data in workfile_instances: instance_data["fps"] = context.data["sceneFps"] @@ -90,6 +104,16 @@ class CollectInstances(pyblish.api.ContextPlugin): instance, json.dumps(instance.data, indent=4) )) + def _create_review_instance_data(self, context): + """Fake review instance data.""" + + return { + "family": "review", + "asset": context.data["workfile_context"]["asset"], + # Dummy subset name + "subset": "reviewMain" + } + def create_render_layer_instance(self, context, instance_data): name = instance_data["name"] # Change label From 632e57d21c110b44cb8494efcffe0ef9afb8b020 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 21 May 2021 11:13:40 +0200 Subject: [PATCH 3/3] skip instances without uuid on instance toggle as review instancemay not have uuid --- openpype/hosts/tvpaint/api/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpype/hosts/tvpaint/api/__init__.py b/openpype/hosts/tvpaint/api/__init__.py index bd9ef51a76..57a03d38b7 100644 --- a/openpype/hosts/tvpaint/api/__init__.py +++ b/openpype/hosts/tvpaint/api/__init__.py @@ -19,6 +19,10 @@ CREATE_PATH = os.path.join(PLUGINS_DIR, "create") def on_instance_toggle(instance, old_value, new_value): + # Review may not have real instance in wokrfile metadata + if not instance.data.get("uuid"): + return + instance_id = instance.data["uuid"] found_idx = None current_instances = pipeline.list_instances()