Merge pull request #2186 from Ellipsanime/add-key-parent-asset-in-path-templating

OpenPypeV3: Add key parent asset to path templating construction
This commit is contained in:
Jakub Trllo 2021-12-14 10:42:32 +01:00 committed by GitHub
commit 3b9db7d43f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 9 deletions

View file

@ -508,13 +508,18 @@ 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")
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": {
"name": project_doc["name"],
@ -526,6 +531,7 @@ def get_workdir_data(project_doc, asset_doc, task_name, host_name):
"short": task_code,
},
"asset": asset_doc["name"],
"parent": parent_name,
"app": host_name,
"user": getpass.getuser(),
"hierarchy": hierarchy,

View file

@ -49,24 +49,27 @@ class CollectAnatomyContextData(pyblish.api.ContextPlugin):
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")
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": {
"name": project_entity["name"],
"code": project_entity["data"].get("code")
},
"asset": asset_entity["name"],
"hierarchy": hierarchy.replace("\\", "/"),
"parent": parent_name,
"hierarchy": hierarchy,
"task": {
"name": task_name,
"type": task_type,

View file

@ -242,7 +242,11 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin):
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")

View file

@ -69,12 +69,16 @@ class NameWindow(QtWidgets.QDialog):
"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")
@ -82,6 +86,11 @@ class NameWindow(QtWidgets.QDialog):
project_task_types = project_doc["config"]["tasks"]
task_short = project_task_types.get(task_type, {}).get("short_name")
asset_parents = asset_doc["data"]["parents"]
parent_name = project_doc["name"]
if asset_parents:
parent_name = asset_parents[-1]
self.data = {
"project": {
"name": project_doc["name"],
@ -93,6 +102,7 @@ class NameWindow(QtWidgets.QDialog):
"type": task_type,
"short": task_short,
},
"parent": parent_name,
"version": 1,
"user": getpass.getuser(),
"comment": "",

View file

@ -60,6 +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 hierarchical parent |
| `version` | Version number |
| `subset` | Subset name |
| `family` | Main family name |