From acb4cebbf503dc491a89adfce38a072fb6111398 Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Mon, 24 Jun 2019 21:55:31 +0100 Subject: [PATCH 1/3] Add tags on project load. --- pype/nukestudio/__init__.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pype/nukestudio/__init__.py b/pype/nukestudio/__init__.py index c8cdc3e0f8..aa4246714b 100644 --- a/pype/nukestudio/__init__.py +++ b/pype/nukestudio/__init__.py @@ -1,17 +1,19 @@ import os -import sys + from avalon import api as avalon from pyblish import api as pyblish from .. import api - from .menu import ( install as menu_install, _update_menu_task_label ) +from .tags import add_tags_from_presets from pypeapp import Logger +import hiero + log = Logger().get_logger(__name__, "nukestudio") AVALON_CONFIG = os.getenv("AVALON_CONFIG", "pype") @@ -55,6 +57,15 @@ def install(config): # load data from templates api.load_data_from_templates() + # Add tags on project load. + hiero.core.events.registerInterest( + "kAfterProjectLoad", add_tags + ) + + +def add_tags(event): + add_tags_from_presets() + def uninstall(): log.info("Deregistering NukeStudio plug-ins..") From d864fb0cfa1f90aad9c2b38298757a2f046afc3f Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Mon, 24 Jun 2019 22:13:14 +0100 Subject: [PATCH 2/3] Get task tags from project config. --- pype/nukestudio/tags.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pype/nukestudio/tags.py b/pype/nukestudio/tags.py index e6c29a4f4e..bb8582da70 100644 --- a/pype/nukestudio/tags.py +++ b/pype/nukestudio/tags.py @@ -1,9 +1,12 @@ -import hiero import re + from pypeapp import ( config, Logger ) +from avalon import io + +import hiero log = Logger().get_logger(__name__, "nukestudio") @@ -59,6 +62,21 @@ def add_tags_from_presets(): nks_pres = presets['nukestudio'] nks_pres_tags = nks_pres.get("tags", None) + # Get project task types. + tasks = io.find_one({"type": "project"})["config"]["tasks"] + nks_pres_tags["[Tasks]"] = {} + for task in tasks: + nks_pres_tags["[Tasks]"][task["name"]] = { + "editable": "1", + "note": "Tag note", + "icon": { + "path": "" + }, + "metadata": { + "family": "task" + } + } + # get project and root bin object project = hiero.core.projects()[-1] root_bin = project.tagsBin() From c331a4c8f653d6f0395e3efce853daf747632424 Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Tue, 25 Jun 2019 11:12:28 +0100 Subject: [PATCH 3/3] Add assets tag bin --- pype/nukestudio/tags.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pype/nukestudio/tags.py b/pype/nukestudio/tags.py index bb8582da70..04a99d2cb8 100644 --- a/pype/nukestudio/tags.py +++ b/pype/nukestudio/tags.py @@ -68,7 +68,7 @@ def add_tags_from_presets(): for task in tasks: nks_pres_tags["[Tasks]"][task["name"]] = { "editable": "1", - "note": "Tag note", + "note": "", "icon": { "path": "" }, @@ -77,6 +77,22 @@ def add_tags_from_presets(): } } + # Get project assets. Currently Ftrack specific to differentiate between + # asset builds and shots. + nks_pres_tags["[Assets]"] = {} + for asset in io.find({"type": "asset"}): + if asset["data"]["entityType"] == "AssetBuild": + nks_pres_tags["[Assets]"][asset["name"]] = { + "editable": "1", + "note": "", + "icon": { + "path": "" + }, + "metadata": { + "family": "asset" + } + } + # get project and root bin object project = hiero.core.projects()[-1] root_bin = project.tagsBin()