diff --git a/pype/plugins/ftrack/publish/integrate_ftrack_api.py b/pype/plugins/ftrack/publish/integrate_ftrack_api.py index c1f573801f..fef79c87fc 100644 --- a/pype/plugins/ftrack/publish/integrate_ftrack_api.py +++ b/pype/plugins/ftrack/publish/integrate_ftrack_api.py @@ -56,7 +56,22 @@ class IntegrateFtrackApi(pyblish.api.InstancePlugin): def process(self, instance): session = instance.context.data["ftrackSession"] - task = instance.context.data["ftrackTask"] + if instance.data.get("ftrackTask"): + task = instance.data["ftrackTask"] + name = task + parent = task["parent"] + elif instance.data.get("ftrackEntity"): + task = None + name = instance.data.get("ftrackEntity")['name'] + parent = instance.data.get("ftrackEntity") + elif instance.context.data.get("ftrackTask"): + task = instance.context.data["ftrackTask"] + name = task + parent = task["parent"] + elif instance.context.data.get("ftrackEntity"): + task = None + name = instance.context.data.get("ftrackEntity")['name'] + parent = instance.context.data.get("ftrackEntity") info_msg = "Created new {entity_type} with data: {data}" info_msg += ", metadata: {metadata}." @@ -68,6 +83,7 @@ class IntegrateFtrackApi(pyblish.api.InstancePlugin): # Get existing entity. assettype_data = {"short": "upload"} assettype_data.update(data.get("assettype_data", {})) + self.log.debug("data: {}".format(data)) assettype_entity = session.query( self.query("AssetType", assettype_data) @@ -83,9 +99,9 @@ class IntegrateFtrackApi(pyblish.api.InstancePlugin): # Asset # Get existing entity. asset_data = { - "name": task["name"], + "name": name, "type": assettype_entity, - "parent": task["parent"], + "parent": parent, } asset_data.update(data.get("asset_data", {})) @@ -120,8 +136,10 @@ class IntegrateFtrackApi(pyblish.api.InstancePlugin): assetversion_data = { "version": 0, "asset": asset_entity, - "task": task } + if task: + assetversion_data['task'] = task + assetversion_data.update(data.get("assetversion_data", {})) assetversion_entity = session.query( diff --git a/pype/plugins/ftrack/publish/integrate_ftrack_instances.py b/pype/plugins/ftrack/publish/integrate_ftrack_instances.py index 75d9b6db15..09c682ac00 100644 --- a/pype/plugins/ftrack/publish/integrate_ftrack_instances.py +++ b/pype/plugins/ftrack/publish/integrate_ftrack_instances.py @@ -25,7 +25,9 @@ class IntegrateFtrackInstance(pyblish.api.InstancePlugin): 'write': 'img', 'render': 'render', 'nukescript': 'comp', - 'review': 'mov'} + 'review': 'mov', + 'plates': 'img' + } def process(self, instance): self.log.debug('instance {}'.format(instance)) diff --git a/pype/plugins/ftrack/publish/integrate_hierarchy_ftrack.py b/pype/plugins/ftrack/publish/integrate_hierarchy_ftrack.py index 377e2d816e..b16eafabd9 100644 --- a/pype/plugins/ftrack/publish/integrate_hierarchy_ftrack.py +++ b/pype/plugins/ftrack/publish/integrate_hierarchy_ftrack.py @@ -45,7 +45,7 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin): def import_to_ftrack(self, input_data, parent=None): for entity_name in input_data: entity_data = input_data[entity_name] - entity_type = entity_data['entity_type'].capitalize() + entity_type = entity_data['entity_type'] if entity_type.lower() == 'project': query = 'Project where full_name is "{}"'.format(entity_name) @@ -85,8 +85,9 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin): 'Missing custom attribute') entity['custom_attributes'][key] = custom_attributes[key] + for instance in instances: - instance.data['ftrackShotId'] = entity['id'] + instance.data['ftrackEntity'] = entity self.session.commit() @@ -108,7 +109,7 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin): for task in tasks_to_create: self.create_task( name=task, - task_type=task.capitalize(), + task_type=task, parent=entity ) self.session.commit()