From fbb9d3e23279b6725a3d326ca1a93928c53cdedd Mon Sep 17 00:00:00 2001 From: "clement.hector" Date: Mon, 22 Nov 2021 13:58:51 +0100 Subject: [PATCH 1/9] Add parent asset in anatomy --- openpype/lib/avalon_context.py | 5 +++++ .../plugins/publish/collect_anatomy_context_data.py | 5 +++++ openpype/tools/workfiles/app.py | 11 ++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/openpype/lib/avalon_context.py b/openpype/lib/avalon_context.py index 372e116f437..581e4b9dbda 100644 --- a/openpype/lib/avalon_context.py +++ b/openpype/lib/avalon_context.py @@ -486,6 +486,10 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name): project_task_types = project_doc["config"]["tasks"] task_code = project_task_types.get(task_type, {}).get("short_name") + parent = project_doc["name"] + if len(asset_doc["data"]["parents"]) != 0: + parent = asset_doc["data"]["parents"][-1] + data = { "project": { "name": project_doc["name"], @@ -497,6 +501,7 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name): "short": task_code, }, "asset": asset_doc["name"], + "parent": parent, "app": host_name, "user": getpass.getuser(), "hierarchy": hierarchy, diff --git a/openpype/plugins/publish/collect_anatomy_context_data.py b/openpype/plugins/publish/collect_anatomy_context_data.py index 6b95979b76f..b0c9eea5766 100644 --- a/openpype/plugins/publish/collect_anatomy_context_data.py +++ b/openpype/plugins/publish/collect_anatomy_context_data.py @@ -60,12 +60,17 @@ def process(self, context): project_task_types = project_entity["config"]["tasks"] task_code = project_task_types.get(task_type, {}).get("short_name") + parent = project_entity["name"] + if len(asset_entity["data"]["parents"]) != 0: + parent = asset_entity["data"]["parents"][-1] + context_data = { "project": { "name": project_entity["name"], "code": project_entity["data"].get("code") }, "asset": asset_entity["name"], + "parent": parent, "hierarchy": hierarchy.replace("\\", "/"), "task": { "name": task_name, diff --git a/openpype/tools/workfiles/app.py b/openpype/tools/workfiles/app.py index a4b1717a1cd..4253f7450a1 100644 --- a/openpype/tools/workfiles/app.py +++ b/openpype/tools/workfiles/app.py @@ -68,12 +68,16 @@ def __init__(self, parent, root, anatomy, template_key, session=None): "config.tasks": True, } ) + asset_doc = io.find_one( { "type": "asset", "name": asset_name }, - {"data.tasks": True} + { + "data.tasks": True, + "data.parents": True + } ) task_type = asset_doc["data"]["tasks"].get(task_name, {}).get("type") @@ -81,6 +85,10 @@ def __init__(self, parent, root, anatomy, template_key, session=None): project_task_types = project_doc["config"]["tasks"] task_short = project_task_types.get(task_type, {}).get("short_name") + parent = project_doc["name"] + if len(asset_doc["data"]["parents"]) != 0: + parent = asset_doc["data"]["parents"][-1] + self.data = { "project": { "name": project_doc["name"], @@ -92,6 +100,7 @@ def __init__(self, parent, root, anatomy, template_key, session=None): "type": task_type, "short": task_short, }, + "parent": parent, "version": 1, "user": getpass.getuser(), "comment": "", From 41a02fddc4b6241602f01620b3756d2887be9e54 Mon Sep 17 00:00:00 2001 From: "clement.hector" Date: Fri, 29 Oct 2021 11:34:26 +0200 Subject: [PATCH 2/9] add parent asset to doc --- website/docs/admin_settings_project_anatomy.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/website/docs/admin_settings_project_anatomy.md b/website/docs/admin_settings_project_anatomy.md index 30784686e26..e897b0ffab9 100644 --- a/website/docs/admin_settings_project_anatomy.md +++ b/website/docs/admin_settings_project_anatomy.md @@ -57,9 +57,14 @@ We have a few required anatomy templates for OpenPype to work properly, however | `project[code]` | Project's code | | `hierarchy` | All hierarchical parents as subfolders | | `asset` | Name of asset or shot | +<<<<<<< HEAD | `task[name]` | Name of task | | `task[type]` | Type of task | | `task[short]` | Shortname of task | +======= +| `parent` | Name of parent folder | +| `task` | Name of task | +>>>>>>> add7db0c0... add parent asset to doc | `version` | Version number | | `subset` | Subset name | | `family` | Main family name | From 41c1f6a2d150ccdfa882b4e6a7e8003c694e1d3d Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:09:00 +0100 Subject: [PATCH 3/9] reuse already available variables --- openpype/lib/avalon_context.py | 13 +++++++------ .../publish/collect_anatomy_context_data.py | 16 +++++++--------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/openpype/lib/avalon_context.py b/openpype/lib/avalon_context.py index 581e4b9dbda..8fb2543412a 100644 --- a/openpype/lib/avalon_context.py +++ b/openpype/lib/avalon_context.py @@ -479,16 +479,17 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name): Returns: dict: Data prepared for filling workdir template. """ - hierarchy = "/".join(asset_doc["data"]["parents"]) - task_type = asset_doc['data']['tasks'].get(task_name, {}).get('type') project_task_types = project_doc["config"]["tasks"] task_code = project_task_types.get(task_type, {}).get("short_name") - parent = project_doc["name"] - if len(asset_doc["data"]["parents"]) != 0: - parent = asset_doc["data"]["parents"][-1] + asset_parents = asset_doc["data"]["parents"] + hierarchy = "/".join(asset_parents) + + parent_name = project_doc["name"] + if asset_parents: + parent_name = asset_parents[-1] data = { "project": { @@ -501,7 +502,7 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name): "short": task_code, }, "asset": asset_doc["name"], - "parent": parent, + "parent": parent_name, "app": host_name, "user": getpass.getuser(), "hierarchy": hierarchy, diff --git a/openpype/plugins/publish/collect_anatomy_context_data.py b/openpype/plugins/publish/collect_anatomy_context_data.py index b0c9eea5766..ae8a879fba4 100644 --- a/openpype/plugins/publish/collect_anatomy_context_data.py +++ b/openpype/plugins/publish/collect_anatomy_context_data.py @@ -49,20 +49,18 @@ def process(self, context): project_entity = context.data["projectEntity"] asset_entity = context.data["assetEntity"] - hierarchy_items = asset_entity["data"]["parents"] - hierarchy = "" - if hierarchy_items: - hierarchy = os.path.join(*hierarchy_items) - asset_tasks = asset_entity["data"]["tasks"] task_type = asset_tasks.get(task_name, {}).get("type") project_task_types = project_entity["config"]["tasks"] task_code = project_task_types.get(task_type, {}).get("short_name") - parent = project_entity["name"] - if len(asset_entity["data"]["parents"]) != 0: - parent = asset_entity["data"]["parents"][-1] + asset_parents = asset_entity["data"]["parents"] + hierarchy = "/".join(asset_parents) + + parent_name = project_entity["name"] + if asset_parents: + parent_name = asset_parents[-1] context_data = { "project": { @@ -70,7 +68,7 @@ def process(self, context): "code": project_entity["data"].get("code") }, "asset": asset_entity["name"], - "parent": parent, + "parent": parent_name, "hierarchy": hierarchy.replace("\\", "/"), "task": { "name": task_name, From 5c9a83b55dd79e9ddac6d678d4ad10cffed41bd8 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:09:12 +0100 Subject: [PATCH 4/9] added missing update of parent --- openpype/plugins/publish/collect_anatomy_instance_data.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openpype/plugins/publish/collect_anatomy_instance_data.py b/openpype/plugins/publish/collect_anatomy_instance_data.py index da6a2195eeb..74b556e28ab 100644 --- a/openpype/plugins/publish/collect_anatomy_instance_data.py +++ b/openpype/plugins/publish/collect_anatomy_instance_data.py @@ -242,7 +242,11 @@ def fill_anatomy_data(self, context): asset_doc = instance.data.get("assetEntity") if asset_doc and asset_doc["_id"] != context_asset_doc["_id"]: parents = asset_doc["data"].get("parents") or list() + parent_name = project_doc["name"] + if parents: + parent_name = parents[-1] anatomy_updates["hierarchy"] = "/".join(parents) + anatomy_updates["parent"] = parent_name # Task task_name = instance.data.get("task") From 853ba0efb37a464b7ee2db0781a43ffee9a132d1 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:10:06 +0100 Subject: [PATCH 5/9] removed conflict marks from docstring --- website/docs/admin_settings_project_anatomy.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/website/docs/admin_settings_project_anatomy.md b/website/docs/admin_settings_project_anatomy.md index e897b0ffab9..5cb396264e5 100644 --- a/website/docs/admin_settings_project_anatomy.md +++ b/website/docs/admin_settings_project_anatomy.md @@ -57,14 +57,11 @@ We have a few required anatomy templates for OpenPype to work properly, however | `project[code]` | Project's code | | `hierarchy` | All hierarchical parents as subfolders | | `asset` | Name of asset or shot | -<<<<<<< HEAD | `task[name]` | Name of task | | `task[type]` | Type of task | | `task[short]` | Shortname of task | -======= | `parent` | Name of parent folder | | `task` | Name of task | ->>>>>>> add7db0c0... add parent asset to doc | `version` | Version number | | `subset` | Subset name | | `family` | Main family name | From c6916ef96cd7470a4e24668c0d6b5951363c7149 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:11:17 +0100 Subject: [PATCH 6/9] modified description of parent --- website/docs/admin_settings_project_anatomy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/admin_settings_project_anatomy.md b/website/docs/admin_settings_project_anatomy.md index 5cb396264e5..a8be77d25bf 100644 --- a/website/docs/admin_settings_project_anatomy.md +++ b/website/docs/admin_settings_project_anatomy.md @@ -60,7 +60,7 @@ We have a few required anatomy templates for OpenPype to work properly, however | `task[name]` | Name of task | | `task[type]` | Type of task | | `task[short]` | Shortname of task | -| `parent` | Name of parent folder | +| `parent` | Name of hierarchical parent | | `task` | Name of task | | `version` | Version number | | `subset` | Subset name | From 741f326935f73a45f6b15da8185ee3d2c3c7ba70 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:13:01 +0100 Subject: [PATCH 7/9] removed not needed replacement --- openpype/plugins/publish/collect_anatomy_context_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/plugins/publish/collect_anatomy_context_data.py b/openpype/plugins/publish/collect_anatomy_context_data.py index ae8a879fba4..07de1b4420e 100644 --- a/openpype/plugins/publish/collect_anatomy_context_data.py +++ b/openpype/plugins/publish/collect_anatomy_context_data.py @@ -69,7 +69,7 @@ def process(self, context): }, "asset": asset_entity["name"], "parent": parent_name, - "hierarchy": hierarchy.replace("\\", "/"), + "hierarchy": hierarchy, "task": { "name": task_name, "type": task_type, From 77cdd406108f7fa0b4506153d196f8f237a96946 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 29 Nov 2021 13:16:24 +0100 Subject: [PATCH 8/9] changed variable name in workfiles tool --- openpype/tools/workfiles/app.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openpype/tools/workfiles/app.py b/openpype/tools/workfiles/app.py index 4253f7450a1..987b886864a 100644 --- a/openpype/tools/workfiles/app.py +++ b/openpype/tools/workfiles/app.py @@ -85,9 +85,10 @@ def __init__(self, parent, root, anatomy, template_key, session=None): project_task_types = project_doc["config"]["tasks"] task_short = project_task_types.get(task_type, {}).get("short_name") - parent = project_doc["name"] - if len(asset_doc["data"]["parents"]) != 0: - parent = asset_doc["data"]["parents"][-1] + asset_parents = asset_doc["data"]["parents"] + parent_name = project_doc["name"] + if asset_parents: + parent_name = asset_parents[-1] self.data = { "project": { @@ -100,7 +101,7 @@ def __init__(self, parent, root, anatomy, template_key, session=None): "type": task_type, "short": task_short, }, - "parent": parent, + "parent": parent_name, "version": 1, "user": getpass.getuser(), "comment": "", From d27b11774888d1af6dac39c25384bca25c900413 Mon Sep 17 00:00:00 2001 From: "clement.hector" Date: Thu, 2 Dec 2021 13:52:59 +0100 Subject: [PATCH 9/9] remove context key task from doc --- website/docs/admin_settings_project_anatomy.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/docs/admin_settings_project_anatomy.md b/website/docs/admin_settings_project_anatomy.md index a8be77d25bf..1f742c31ed0 100644 --- a/website/docs/admin_settings_project_anatomy.md +++ b/website/docs/admin_settings_project_anatomy.md @@ -61,7 +61,6 @@ We have a few required anatomy templates for OpenPype to work properly, however | `task[type]` | Type of task | | `task[short]` | Shortname of task | | `parent` | Name of hierarchical parent | -| `task` | Name of task | | `version` | Version number | | `subset` | Subset name | | `family` | Main family name |