Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Ftrack: Store ftrack entities on hierarchy integration to instances #3677

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import os
import sys
import collections

import six
import pyblish.api
import clique
Expand All @@ -21,7 +22,7 @@
class IntegrateFtrackApi(pyblish.api.InstancePlugin):
""" Commit components to server. """

order = pyblish.api.IntegratorOrder+0.499
order = pyblish.api.IntegratorOrder + 0.499
label = "Integrate Ftrack Api"
families = ["ftrack"]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class IntegrateFtrackInstance(pyblish.api.InstancePlugin):
"reference": "reference"
}
keep_first_subset_name_for_review = True
asset_versions_status_profiles = {}
asset_versions_status_profiles = []
additional_metadata_keys = []

def process(self, instance):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,14 @@ def import_to_ftrack(self, project_name, input_data, parent=None):
# CUSTOM ATTRIBUTES
custom_attributes = entity_data.get('custom_attributes', [])
instances = [
i for i in self.context if i.data['asset'] in entity['name']
instance
for instance in self.context
if instance.data.get("asset") == entity["name"]
]

for instance in instances:
instance.data["ftrackEntity"] = entity

for key in custom_attributes:
hier_attr = hier_attr_by_key.get(key)
# Use simple method if key is not hierarchical
Expand Down Expand Up @@ -187,9 +193,6 @@ def import_to_ftrack(self, project_name, input_data, parent=None):
)
)

for instance in instances:
instance.data['ftrackEntity'] = entity

try:
self.session.commit()
except Exception:
Expand All @@ -199,13 +202,22 @@ def import_to_ftrack(self, project_name, input_data, parent=None):
six.reraise(tp, value, tb)

# TASKS
instances_by_task_name = collections.defaultdict(list)
for instance in instances:
task_name = instance.data.get("task")
if task_name:
instances_by_task_name[task_name].append(instance)

tasks = entity_data.get('tasks', [])
existing_tasks = []
tasks_to_create = []
for child in entity['children']:
if child.entity_type.lower() == 'task':
existing_tasks.append(child['name'].lower())
# existing_tasks.append(child['type']['name'])
if child.entity_type.lower() == "task":
task_name_low = child["name"].lower()
existing_tasks.append(task_name_low)

for instance in instances_by_task_name[task_name_low]:
instance["ftrackTask"] = child

for task_name in tasks:
task_type = tasks[task_name]["type"]
Expand All @@ -215,12 +227,15 @@ def import_to_ftrack(self, project_name, input_data, parent=None):
tasks_to_create.append((task_name, task_type))

for task_name, task_type in tasks_to_create:
self.create_task(
task_entity = self.create_task(
name=task_name,
task_type=task_type,
parent=entity
)

for instance in instances_by_task_name[task_name.lower()]:
instance.data["ftrackTask"] = task_entity

# Incoming links.
self.create_links(project_name, entity_data, entity)
try:
Expand Down
4 changes: 0 additions & 4 deletions openpype/settings/defaults/project_settings/ftrack.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,6 @@
"mapping": {},
"asset_types_to_skip": []
},
"first_version_status": {
"enabled": true,
"status": ""
},
"next_task_update": {
"enabled": true,
"mapping": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,24 +299,6 @@
}
]
},
{
"type": "dict",
"key": "first_version_status",
"label": "Set status on first created version",
"checkbox_key": "enabled",
"children": [
{
"type": "boolean",
"key": "enabled",
"label": "Enabled"
},
{
"type": "text",
"key": "status",
"label": "Status"
}
]
},
{
"type": "dict",
"key": "next_task_update",
Expand Down Expand Up @@ -986,7 +968,7 @@
{
"type": "dict",
"key": "IntegrateFtrackInstance",
"label": "IntegrateFtrackInstance",
"label": "Integrate Ftrack Instance",
"is_group": true,
"children": [
{
Expand Down