mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
instances in AYON mode have 'folderPath' instead of 'asset'
This commit is contained in:
parent
331c4833ad
commit
4c6ec4b9bc
2 changed files with 35 additions and 5 deletions
|
|
@ -11,7 +11,12 @@ from contextlib import contextmanager
|
|||
import pyblish.logic
|
||||
import pyblish.api
|
||||
|
||||
from openpype.client import get_assets, get_asset_by_name
|
||||
from openpype import AYON_SERVER_ENABLED
|
||||
from openpype.client import (
|
||||
get_assets,
|
||||
get_asset_by_name,
|
||||
get_asset_name_identifier,
|
||||
)
|
||||
from openpype.settings import (
|
||||
get_system_settings,
|
||||
get_project_settings
|
||||
|
|
@ -922,9 +927,19 @@ class CreatedInstance:
|
|||
self._orig_data = copy.deepcopy(data)
|
||||
|
||||
# Pop family and subset to prevent unexpected changes
|
||||
# TODO change to 'productType' and 'productName' in AYON
|
||||
data.pop("family", None)
|
||||
data.pop("subset", None)
|
||||
|
||||
if AYON_SERVER_ENABLED:
|
||||
asset_name = data.pop("asset", None)
|
||||
if "folderPath" not in data:
|
||||
data["folderPath"] = asset_name
|
||||
|
||||
elif "folderPath" in data:
|
||||
asset_name = data.pop("folderPath").split("/")[-1]
|
||||
if "asset" not in data:
|
||||
data["asset"] = asset_name
|
||||
|
||||
# QUESTION Does it make sense to have data stored as ordered dict?
|
||||
self._data = collections.OrderedDict()
|
||||
|
|
@ -1268,6 +1283,8 @@ class CreatedInstance:
|
|||
def has_set_asset(self):
|
||||
"""Asset name is set in data."""
|
||||
|
||||
if AYON_SERVER_ENABLED:
|
||||
return "folderPath" in self._data
|
||||
return "asset" in self._data
|
||||
|
||||
@property
|
||||
|
|
@ -2229,7 +2246,10 @@ class CreateContext:
|
|||
task_names_by_asset_name = {}
|
||||
for instance in instances:
|
||||
task_name = instance.get("task")
|
||||
asset_name = instance.get("asset")
|
||||
if AYON_SERVER_ENABLED:
|
||||
asset_name = instance.get("folderPath")
|
||||
else:
|
||||
asset_name = instance.get("asset")
|
||||
if asset_name:
|
||||
task_names_by_asset_name[asset_name] = set()
|
||||
if task_name:
|
||||
|
|
@ -2240,15 +2260,18 @@ class CreateContext:
|
|||
for asset_name in task_names_by_asset_name.keys()
|
||||
if asset_name is not None
|
||||
]
|
||||
fields = {"name", "data.tasks"}
|
||||
if AYON_SERVER_ENABLED:
|
||||
fields |= {"data.parents"}
|
||||
asset_docs = list(get_assets(
|
||||
self.project_name,
|
||||
asset_names=asset_names,
|
||||
fields=["name", "data.tasks"]
|
||||
fields=fields
|
||||
))
|
||||
|
||||
task_names_by_asset_name = {}
|
||||
for asset_doc in asset_docs:
|
||||
asset_name = asset_doc["name"]
|
||||
asset_name = get_asset_name_identifier(asset_doc)
|
||||
tasks = asset_doc.get("data", {}).get("tasks") or {}
|
||||
task_names_by_asset_name[asset_name] = set(tasks.keys())
|
||||
|
||||
|
|
@ -2256,7 +2279,11 @@ class CreateContext:
|
|||
if not instance.has_valid_asset or not instance.has_valid_task:
|
||||
continue
|
||||
|
||||
asset_name = instance["asset"]
|
||||
if AYON_SERVER_ENABLED:
|
||||
asset_name = instance["folderPath"]
|
||||
else:
|
||||
asset_name = instance["asset"]
|
||||
|
||||
if asset_name not in task_names_by_asset_name:
|
||||
instance.set_asset_invalid(True)
|
||||
continue
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
import os
|
||||
import pyblish.api
|
||||
|
||||
from openpype import AYON_SERVER_ENABLED
|
||||
from openpype.host import IPublishHost
|
||||
from openpype.pipeline import legacy_io, registered_host
|
||||
from openpype.pipeline.create import CreateContext
|
||||
|
|
@ -38,6 +39,8 @@ class CollectFromCreateContext(pyblish.api.ContextPlugin):
|
|||
|
||||
for created_instance in create_context.instances:
|
||||
instance_data = created_instance.data_to_store()
|
||||
if AYON_SERVER_ENABLED:
|
||||
instance_data["asset"] = instance_data.pop("folderPath")
|
||||
if instance_data["active"]:
|
||||
thumbnail_path = thumbnail_paths_by_instance_id.get(
|
||||
created_instance.id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue