fix get product name in publisher

This commit is contained in:
Jakub Trllo 2024-03-04 17:41:30 +01:00
parent 2072f2fbe2
commit 9400cabe2b

View file

@ -12,10 +12,8 @@ from abc import ABCMeta, abstractmethod
import six
import arrow
import pyblish.api
import ayon_api
from ayon_core.client import (
get_asset_by_name,
get_subsets,
)
from ayon_core.lib.events import QueuedEventSystem
@ -66,24 +64,6 @@ class MainThreadItem:
self.callback(*self.args, **self.kwargs)
class AssetDocsCache:
"""Cache asset documents for creation part."""
def __init__(self, controller):
self._controller = controller
self._asset_docs_by_path = {}
def reset(self):
self._asset_docs_by_path = {}
def get_asset_doc_by_folder_path(self, folder_path):
if folder_path not in self._asset_docs_by_path:
project_name = self._controller.project_name
asset_doc = get_asset_by_name(project_name, folder_path)
self._asset_docs_by_path[folder_path] = asset_doc
return copy.deepcopy(self._asset_docs_by_path[folder_path])
class PublishReportMaker:
"""Report for single publishing process.
@ -1653,7 +1633,6 @@ class PublisherController(BasePublisherController):
# Cacher of avalon documents
self._hierarchy_model = HierarchyModel(self)
self._asset_docs_cache = AssetDocsCache(self)
@property
def project_name(self):
@ -1816,11 +1795,10 @@ class PublisherController(BasePublisherController):
self._create_context.reset_preparation()
# Reset avalon context
# Reset current context
self._create_context.reset_current_context()
self._hierarchy_model.reset()
self._asset_docs_cache.reset()
self._reset_plugins()
# Publish part must be reset after plugins
@ -2052,16 +2030,37 @@ class PublisherController(BasePublisherController):
"""
creator = self._creators[creator_identifier]
project_name = self.project_name
asset_doc = self._asset_docs_cache.get_asset_doc_by_folder_path(
folder_path
)
instance = None
if instance_id:
instance = self.instances[instance_id]
project_name = self.project_name
folder_item = self._hierarchy_model.get_folder_item_by_path(
project_name, folder_path
)
folder_entity = None
task_item = None
task_entity = None
if folder_item is not None:
folder_entity = self._hierarchy_model.get_folder_entity(
project_name, folder_item.entity_id
)
task_item = self._hierarchy_model.get_task_item_by_name(
project_name, folder_item.entity_id, task_name, "controller"
)
if task_item is not None:
task_entity = self._hierarchy_model.get_task_entity(
project_name, task_item.task_id
)
return creator.get_product_name(
project_name, asset_doc, task_name, variant, instance=instance
project_name,
folder_entity,
task_entity,
variant,
instance=instance
)
def trigger_convertor_items(self, convertor_identifiers):