From f98bcd2c631d61f443200c536dbf7eef69283424 Mon Sep 17 00:00:00 2001 From: BenoitConnan Date: Mon, 28 Feb 2022 15:52:13 +0100 Subject: [PATCH] Squashed commit of add_master_task_file_templating: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 21fc3b23ccc1de52dc67e70edff25fb76d518edc Author: clement.hector Date: Wed Jan 5 14:28:44 2022 +0100 Change master_task to main_task commit c5bf5e1b0f58e209bc849353f0a1f637bd6e1450 Author: Jérôme LORRAIN Date: Thu Dec 23 11:24:58 2021 +0100 Remove wip commit 592c97e4f4d1044f02d97874043514446511255a Author: Jérôme LORRAIN Date: Fri Dec 17 11:52:38 2021 +0100 Make lmauncher and workfiles interfaces use master_task info commit 6f792511a47cee78fd89d0675369ec0da02c7b3c Merge: ecae9f623 646875117 Author: Petr Kalis Date: Mon Feb 7 10:05:55 2022 +0100 Merge pull request #2634 from Ellipsanime/fix-photoshop-environement-workfiles-on-launch Fix open workfile on launch in photoshop commit ecae9f6238c887e0abfeb7a27aaca468d9357b69 Merge: 4b3834ea5 3160199b0 Author: Milan Kolar Date: Mon Feb 7 09:52:39 2022 +0100 Merge pull request #2556 from pypeclub/feature/OP-2429_Publisher-Preparations-before-standalone-publisher commit 4b3834ea50de824dcdb653d5c4bad1afa797c48c Merge: ccea53538 604a590fe Author: pypebot <82967070+pypebot@users.noreply.github.com> Date: Mon Feb 7 09:38:20 2022 +0100 [Automated] Merged release main into develop commit ccea535384555e2eca0730da8d5a4f7a448d8aeb Merge: f2a954371 a11700e1e Author: pypebot <82967070+pypebot@users.noreply.github.com> Date: Sat Feb 5 04:34:51 2022 +0100 [Automated] Merged main into develop commit 6468751179d2fa1002efa5927acaf04549bb8d6e Author: clement.hector Date: Fri Feb 4 12:11:05 2022 +0100 use env_value_to_bool instead of ast.literal_eval + os.getenv commit fe46093ada0494b745b1e8e7263bd9489dd665bd Author: clement.hector Date: Wed Feb 2 19:36:49 2022 +0100 fix test on string to boolean commit 3160199b044d63ffbc4b4d8bb3c7a852578dd355 Author: Jakub Trllo Date: Tue Jan 25 14:15:19 2022 +0100 fix grammar commit d7393646a3a084e3502dec720abbf51aba1385ac Author: Jakub Trllo Date: Tue Jan 25 13:48:18 2022 +0100 handle default value of 'is_label_horizontal' commit 7ec4d501802135fd725e5f37682bc351ca38483f Author: Jakub Trllo Date: Tue Jan 25 13:48:03 2022 +0100 precreate widget is separated from create dialog completely commit f8be5763b57af0e94b85af74ae95ba1579578349 Author: iLLiCiTiT Date: Tue Jan 18 18:05:32 2022 +0100 renamed method 'get_attribute_defs' to 'get_instance_attr_defs' commit 20f5e8fc1b2263882adec624e1b961a0308a3fda Author: iLLiCiTiT Date: Tue Jan 18 17:51:25 2022 +0100 hound fixes commit 95176b6e345e8d70a6e24c78e9bd052382b35481 Author: iLLiCiTiT Date: Tue Jan 18 17:26:16 2022 +0100 modified example creator commit 23c3bc8d0a31875da642aee0ea1298ee34e73831 Author: iLLiCiTiT Date: Tue Jan 18 17:26:09 2022 +0100 style changes of header view nad checkbox commit 2d7521289a088e4bf3f15f573be42b78ee1dd81c Author: iLLiCiTiT Date: Tue Jan 18 17:25:51 2022 +0100 ui attribute definitions are skipped for storing data commit f0b7f72325ff51a9f7cf4681c2fa81c44562d18c Author: iLLiCiTiT Date: Tue Jan 18 17:25:34 2022 +0100 creator dialog has context widget and creator's attributes commit 9c6a57aa587fe7577d9214e55311029d36e34039 Author: iLLiCiTiT Date: Tue Jan 18 17:23:37 2022 +0100 creator can define precreate attribute definitions and allowing context change commit 3878c5262a5293ed250c85a15be6aa5531da1da2 Author: iLLiCiTiT Date: Tue Jan 18 17:22:57 2022 +0100 added widgett for pre create attributes commit fffdef5030f74cb0c0428cfb657234465d2d3a09 Author: iLLiCiTiT Date: Tue Jan 18 17:22:41 2022 +0100 added publisher specific asset and task widgets commit fbdd1d8ab5cc43c5bf00ff6122e68c5aaac5f739 Author: iLLiCiTiT Date: Tue Jan 18 17:22:08 2022 +0100 moved few widgets to tools/utils and modified asset/task widgets to easily change source model commit 396bdfde8a05d37be283f4ba411debc500ee4328 Author: iLLiCiTiT Date: Tue Jan 18 17:16:32 2022 +0100 added few new attribute definitions and their widgets --- openpype/lib/__init__.py | 2 ++ openpype/lib/avalon_context.py | 28 ++++++++++++++++++++++++++++ openpype/tools/workfiles/app.py | 9 ++++++++- 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/openpype/lib/__init__.py b/openpype/lib/__init__.py index 7dd9a8793b0..f425962ba11 100644 --- a/openpype/lib/__init__.py +++ b/openpype/lib/__init__.py @@ -90,6 +90,7 @@ get_workdir_data, get_workdir, get_workdir_with_workdir_data, + get_main_task, create_workfile_doc, save_workfile_data_to_doc, @@ -228,6 +229,7 @@ "get_workdir_data", "get_workdir", "get_workdir_with_workdir_data", + "get_main_task", "create_workfile_doc", "save_workfile_data_to_doc", diff --git a/openpype/lib/avalon_context.py b/openpype/lib/avalon_context.py index 12545806571..f9480fbf520 100644 --- a/openpype/lib/avalon_context.py +++ b/openpype/lib/avalon_context.py @@ -375,6 +375,30 @@ def get_latest_version(asset_name, subset_name, dbcon=None, project_name=None): return version_doc +def get_main_task(asset_doc, task_name): + """Retrieve main_task from avalon asset requested task + + Return the main task if there is one, return the task otherwise. + + Args: + asset_id (int): Id of asset under which the task belongs. + task_name (str): Name of task to retrieve main_task from. + Returns: + str: main task name if there is one, task name otherwise. + """ + + if asset_doc: + main_task = ( + asset_doc.get("data", {}) + .get("tasks", {}) + .get(task_name, {}) + .get("main_task", None) + ) + if main_task: + return main_task + return task_name + + def get_workfile_template_key_from_context( asset_name, task_name, host_name, project_name=None, dbcon=None, project_settings=None @@ -520,6 +544,10 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name): if asset_parents: parent_name = asset_parents[-1] + main_task = get_main_task(asset_doc, task_name) + if main_task: + task_name = main_task + data = { "project": { "name": project_doc["name"], diff --git a/openpype/tools/workfiles/app.py b/openpype/tools/workfiles/app.py index 9dab8026535..826f98fcb06 100644 --- a/openpype/tools/workfiles/app.py +++ b/openpype/tools/workfiles/app.py @@ -23,6 +23,7 @@ from openpype.tools.utils.delegates import PrettyTimeDelegate from openpype.lib import ( Anatomy, + get_main_task, get_workdir, get_workfile_doc, create_workfile_doc, @@ -423,7 +424,11 @@ def set_asset_task(self, asset_id, task_name, task_type): if asset_id != self._asset_id: self._asset_doc = None self._asset_id = asset_id - self._task_name = task_name + asset_doc = io.find_one( + {"type": "asset", "_id": asset_id}, + {"data": True} + ) + self._task_name = get_main_task(asset_doc, task_name) self._task_type = task_type # Define a custom session so we can query the work root @@ -451,6 +456,8 @@ def set_asset_task(self, asset_id, task_name, task_type): # Manually trigger file selection self.on_file_select() + self._task_name = task_name + def _get_asset_doc(self): if self._asset_id is None: return None