From a8394304100b103db1798124b702c7ed42e9b917 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 3 Feb 2021 19:43:55 +0100 Subject: [PATCH] fixed tasks changes on project update --- pype/modules/ftrack/lib/avalon_sync.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/pype/modules/ftrack/lib/avalon_sync.py b/pype/modules/ftrack/lib/avalon_sync.py index 2e9d8d68ed..cd6a1e69ac 100644 --- a/pype/modules/ftrack/lib/avalon_sync.py +++ b/pype/modules/ftrack/lib/avalon_sync.py @@ -2124,10 +2124,27 @@ class SyncEntitiesFactory: self.report_items["warning"][msg] = sub_msg self.log.warning(sub_msg) - return self.compare_dict( - self.entities_dict[self.ft_project_id]["final_entity"], - self.avalon_project - ) + # Compare tasks from current project schema and previous project schema + final_doc_data = self.entities_dict[self.ft_project_id]["final_entity"] + final_doc_tasks = final_doc_data["config"].pop("tasks") + current_doc_tasks = self.avalon_project.get("config", {}).get("tasks") + # Update project's tasks if tasks are empty or are not same + if not final_doc_tasks: + update_tasks = True + else: + update_tasks = final_doc_tasks != current_doc_tasks + + changes = self.compare_dict(final_doc_data, self.avalon_project) + + # Put back tasks data to final entity object + final_doc_data["config"]["tasks"] = final_doc_tasks + + # Add tasks updates if tasks changed + if update_tasks: + if "config" not in changes: + changes["config"] = {} + changes["config"]["tasks"] = final_doc_tasks + return changes def compare_dict(self, dict_new, dict_old, _ignore_keys=[]): """