From ab9e1637fe4ee07eea5ba590c2000866e61a61a9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:14:30 +0200 Subject: [PATCH 1/6] use constant from ftrack.lib for custom attribute name --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index 1f3f0b58a5..ca75a4d14e 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -2,7 +2,11 @@ import sys import pyblish.api import pype.api import avalon.api -import six + +try: + from pype.modules.ftrack.lib.avalon_sync import CUST_ATTR_AUTO_SYNC +except Exception: + CUST_ATTR_AUTO_SYNC = "avalon_auto_sync" class ValidateAutoSyncOff(pyblish.api.ContextPlugin): From f7304ba26d6127410a7dab1b9577135ac8593ff9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:14:48 +0200 Subject: [PATCH 2/6] do not query project in process part (not used) --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index ca75a4d14e..53042fef6a 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -23,12 +23,7 @@ class ValidateAutoSyncOff(pyblish.api.ContextPlugin): actions = [pype.api.RepairAction] def process(self, context): - session = context.data["ftrackSession"] - project_name = avalon.api.Session["AVALON_PROJECT"] - query = 'Project where full_name is "{}"'.format(project_name) - project = session.query(query).one() invalid = self.get_invalid(context) - assert not invalid, ( "Ftrack Project has 'Auto sync' set to On." " That may cause issues during integration." From 00acee01ce3c5b62d545ed4c58168fe94045aa13 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:15:10 +0200 Subject: [PATCH 3/6] get_invalid returns project only if auto sync is turned on --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index 53042fef6a..3b7937bbec 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -35,8 +35,8 @@ class ValidateAutoSyncOff(pyblish.api.ContextPlugin): project_name = avalon.api.Session["AVALON_PROJECT"] query = 'Project where full_name is "{}"'.format(project_name) project = session.query(query).one() - - return project + if project["custom_attributes"][CUST_ATTR_AUTO_SYNC]: + return project @classmethod def repair(cls, context): From 7f2d6a7d8518c5205f33fb5d10c98dce3093ef3d Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:15:52 +0200 Subject: [PATCH 4/6] one more place where constant for custom attribute key is used --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index 3b7937bbec..dc4420a9f7 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -42,7 +42,7 @@ class ValidateAutoSyncOff(pyblish.api.ContextPlugin): def repair(cls, context): session = context.data["ftrackSession"] invalid = cls.get_invalid(context) - invalid['custom_attributes']['avalon_auto_sync'] = False + invalid["custom_attributes"][CUST_ATTR_AUTO_SYNC] = False try: session.commit() except Exception: From fdaf486ef5ddbe01862373312878a76b9b92d377 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:21:11 +0200 Subject: [PATCH 5/6] added additional check to repair for sure --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index dc4420a9f7..7a5d78795a 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -42,6 +42,10 @@ class ValidateAutoSyncOff(pyblish.api.ContextPlugin): def repair(cls, context): session = context.data["ftrackSession"] invalid = cls.get_invalid(context) + if not invalid: + cls.log.info("Project 'Auto sync' already fixed.") + return + invalid["custom_attributes"][CUST_ATTR_AUTO_SYNC] = False try: session.commit() From e879fe78958be659fadf8315745e3a7da3459a31 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 17 Jul 2020 16:21:25 +0200 Subject: [PATCH 6/6] changed ReparAction to RepairContextAction --- pype/plugins/premiere/publish/validate_auto_sync_off.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/plugins/premiere/publish/validate_auto_sync_off.py b/pype/plugins/premiere/publish/validate_auto_sync_off.py index 7a5d78795a..cd6fef29c8 100644 --- a/pype/plugins/premiere/publish/validate_auto_sync_off.py +++ b/pype/plugins/premiere/publish/validate_auto_sync_off.py @@ -20,7 +20,7 @@ class ValidateAutoSyncOff(pyblish.api.ContextPlugin): order = pyblish.api.ValidatorOrder families = ['clip'] label = 'Ftrack project\'s auto sync off' - actions = [pype.api.RepairAction] + actions = [pype.api.RepairContextAction] def process(self, context): invalid = self.get_invalid(context)