mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
do not trigger publish attributes collection after each add bulk, but when it finishes
This commit is contained in:
parent
d98dcb6242
commit
9d68669b6a
1 changed files with 45 additions and 45 deletions
|
|
@ -839,7 +839,7 @@ class CreateContext:
|
|||
publish_attributes.update(output)
|
||||
|
||||
for plugin in self.plugins_with_defs:
|
||||
attr_defs = plugin.get_attr_defs_for_context (self)
|
||||
attr_defs = plugin.get_attr_defs_for_context(self)
|
||||
if not attr_defs:
|
||||
continue
|
||||
self._publish_attributes.set_publish_plugin_attr_defs(
|
||||
|
|
@ -1259,50 +1259,6 @@ class CreateContext:
|
|||
with self._bulk_context("add", sender) as bulk_info:
|
||||
yield bulk_info
|
||||
|
||||
# Set publish attributes before bulk context is exited
|
||||
for instance in bulk_info.get_data():
|
||||
publish_attributes = instance.publish_attributes
|
||||
# Prepare publish plugin attributes and set it on instance
|
||||
for plugin in self.plugins_with_defs:
|
||||
try:
|
||||
if is_func_signature_supported(
|
||||
plugin.convert_attribute_values, self, instance
|
||||
):
|
||||
plugin.convert_attribute_values(self, instance)
|
||||
|
||||
elif plugin.__instanceEnabled__:
|
||||
output = plugin.convert_attribute_values(
|
||||
publish_attributes
|
||||
)
|
||||
if output:
|
||||
publish_attributes.update(output)
|
||||
|
||||
except Exception:
|
||||
self.log.error(
|
||||
"Failed to convert attribute values of"
|
||||
f" plugin '{plugin.__name__}'",
|
||||
exc_info=True
|
||||
)
|
||||
|
||||
for plugin in self.plugins_with_defs:
|
||||
attr_defs = None
|
||||
try:
|
||||
attr_defs = plugin.get_attr_defs_for_instance(
|
||||
self, instance
|
||||
)
|
||||
except Exception:
|
||||
self.log.error(
|
||||
"Failed to get attribute definitions"
|
||||
f" from plugin '{plugin.__name__}'.",
|
||||
exc_info=True
|
||||
)
|
||||
|
||||
if not attr_defs:
|
||||
continue
|
||||
instance.set_publish_plugin_attr_defs(
|
||||
plugin.__name__, attr_defs
|
||||
)
|
||||
|
||||
@contextmanager
|
||||
def bulk_instances_collection(self, sender=None):
|
||||
"""DEPRECATED use 'bulk_add_instances' instead."""
|
||||
|
|
@ -2251,6 +2207,50 @@ class CreateContext:
|
|||
if not instances_to_validate:
|
||||
return
|
||||
|
||||
# Set publish attributes before bulk callbacks are triggered
|
||||
for instance in instances_to_validate:
|
||||
publish_attributes = instance.publish_attributes
|
||||
# Prepare publish plugin attributes and set it on instance
|
||||
for plugin in self.plugins_with_defs:
|
||||
try:
|
||||
if is_func_signature_supported(
|
||||
plugin.convert_attribute_values, self, instance
|
||||
):
|
||||
plugin.convert_attribute_values(self, instance)
|
||||
|
||||
elif plugin.__instanceEnabled__:
|
||||
output = plugin.convert_attribute_values(
|
||||
publish_attributes
|
||||
)
|
||||
if output:
|
||||
publish_attributes.update(output)
|
||||
|
||||
except Exception:
|
||||
self.log.error(
|
||||
"Failed to convert attribute values of"
|
||||
f" plugin '{plugin.__name__}'",
|
||||
exc_info=True
|
||||
)
|
||||
|
||||
for plugin in self.plugins_with_defs:
|
||||
attr_defs = None
|
||||
try:
|
||||
attr_defs = plugin.get_attr_defs_for_instance(
|
||||
self, instance
|
||||
)
|
||||
except Exception:
|
||||
self.log.error(
|
||||
"Failed to get attribute definitions"
|
||||
f" from plugin '{plugin.__name__}'.",
|
||||
exc_info=True
|
||||
)
|
||||
|
||||
if not attr_defs:
|
||||
continue
|
||||
instance.set_publish_plugin_attr_defs(
|
||||
plugin.__name__, attr_defs
|
||||
)
|
||||
|
||||
# Cache folder and task entities for all instances at once
|
||||
self.get_instances_context_info(instances_to_validate)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue