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