Tagging assetbuilds.

This commit is contained in:
Toke Jepsen 2019-06-28 13:29:49 +01:00
parent 48fc480611
commit fe60155d96
7 changed files with 128 additions and 19 deletions

View file

@ -1,4 +1,5 @@
import pyblish.api
from avalon import io
class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin):
@ -35,6 +36,9 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin):
if "hierarchyContext" not in context.data:
return
if not io.Session:
io.install()
self.ft_project = None
self.session = context.data["ftrackSession"]
@ -81,10 +85,13 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin):
# CUSTOM ATTRIBUTES
custom_attributes = entity_data.get('custom_attributes', [])
instances = [
i for i in self.context[:] if i.data['asset'] in entity['name']]
i for i in self.context[:] if i.data['asset'] in entity['name']
]
for key in custom_attributes:
assert (key in entity['custom_attributes']), (
'Missing custom attribute key: `{0}` in attrs: `{1}`'.format(key, entity['custom_attributes'].keys()))
'Missing custom attribute key: `{0}` in attrs: '
'`{1}`'.format(key, entity['custom_attributes'].keys())
)
entity['custom_attributes'][key] = custom_attributes[key]
@ -116,10 +123,33 @@ class IntegrateHierarchyToFtrack(pyblish.api.ContextPlugin):
)
self.session.commit()
# Incoming links.
self.create_links(entity_data, entity)
self.session.commit()
if 'childs' in entity_data:
self.import_to_ftrack(
entity_data['childs'], entity)
def create_links(self, entity_data, entity):
# Clear existing links.
for link in entity.get("incoming_links", []):
self.session.delete(link)
self.session.commit()
# Create new links.
for input in entity_data.get("inputs", []):
input_id = io.find_one({"_id": input})["data"]["ftrackId"]
assetbuild = self.session.get("AssetBuild", input_id)
self.log.debug(
"Creating link from {0} to {1}".format(
assetbuild["name"], entity["name"]
)
)
self.session.create(
"TypedContextLink", {"from": assetbuild, "to": entity}
)
def get_all_task_types(self, project):
tasks = {}
proj_template = project['project_schema']