reduced information that is used in loader for action item

This commit is contained in:
Jakub Trllo 2025-08-20 15:38:56 +02:00
parent 5e3b38376c
commit 723932cfac
5 changed files with 33 additions and 72 deletions

View file

@ -324,11 +324,6 @@ class ActionItem:
options (Union[list[AbstractAttrDef], list[qargparse.QArgument]]):
Action options. Note: 'qargparse' is considered as deprecated.
order (int): Action order.
project_name (str): Project name.
folder_ids (list[str]): Folder ids.
product_ids (list[str]): Product ids.
version_ids (list[str]): Version ids.
representation_ids (list[str]): Representation ids.
"""
def __init__(
@ -339,11 +334,6 @@ class ActionItem:
tooltip,
options,
order,
project_name,
folder_ids,
product_ids,
version_ids,
representation_ids,
):
self.identifier = identifier
self.label = label
@ -351,11 +341,6 @@ class ActionItem:
self.tooltip = tooltip
self.options = options
self.order = order
self.project_name = project_name
self.folder_ids = folder_ids
self.product_ids = product_ids
self.version_ids = version_ids
self.representation_ids = representation_ids
def _options_to_data(self):
options = self.options
@ -382,11 +367,6 @@ class ActionItem:
"tooltip": self.tooltip,
"options": options,
"order": self.order,
"project_name": self.project_name,
"folder_ids": self.folder_ids,
"product_ids": self.product_ids,
"version_ids": self.version_ids,
"representation_ids": self.representation_ids,
}
@classmethod
@ -1013,11 +993,11 @@ class FrontendLoaderController(_BaseLoaderController):
@abstractmethod
def trigger_action_item(
self,
identifier,
options,
project_name,
version_ids,
representation_ids
identifier: str,
options: dict[str, Any],
project_name: str,
entity_ids: set[str],
entity_type: str,
):
"""Trigger action item.
@ -1038,10 +1018,10 @@ class FrontendLoaderController(_BaseLoaderController):
identifier (str): Action identifier.
options (dict[str, Any]): Action option values from UI.
project_name (str): Project name.
version_ids (Iterable[str]): Version ids.
representation_ids (Iterable[str]): Representation ids.
"""
entity_ids (set[str]): Selected entity ids.
entity_type (str): Selected entity type.
"""
pass
@abstractmethod

View file

@ -309,14 +309,14 @@ class LoaderController(BackendLoaderController, FrontendLoaderController):
identifier,
options,
project_name,
version_ids,
representation_ids
entity_ids,
entity_type,
):
if self._sitesync_model.is_sitesync_action(identifier):
self._sitesync_model.trigger_action_item(
identifier,
project_name,
representation_ids
entity_ids,
)
return
@ -324,8 +324,8 @@ class LoaderController(BackendLoaderController, FrontendLoaderController):
identifier,
options,
project_name,
version_ids,
representation_ids
entity_ids,
entity_type,
)
# Selection model wrappers

View file

@ -113,11 +113,11 @@ class LoaderActionsModel:
def trigger_action_item(
self,
identifier,
options,
project_name,
version_ids,
representation_ids
identifier: str,
options: dict[str, Any],
project_name: str,
entity_ids: set[str],
entity_type: str,
):
"""Trigger action by identifier.
@ -131,10 +131,10 @@ class LoaderActionsModel:
identifier (str): Loader identifier.
options (dict[str, Any]): Loader option values.
project_name (str): Project name.
version_ids (Iterable[str]): Version ids.
representation_ids (Iterable[str]): Representation ids.
"""
entity_ids (set[str]): Entity ids.
entity_type (str): Entity type.
"""
event_data = {
"identifier": identifier,
"id": uuid.uuid4().hex,
@ -145,23 +145,24 @@ class LoaderActionsModel:
ACTIONS_MODEL_SENDER,
)
loader = self._get_loader_by_identifier(project_name, identifier)
if representation_ids is not None:
if entity_type == "representation":
error_info = self._trigger_representation_loader(
loader,
options,
project_name,
representation_ids,
entity_ids,
)
elif version_ids is not None:
elif entity_type == "version":
error_info = self._trigger_version_loader(
loader,
options,
project_name,
version_ids,
entity_ids,
)
else:
raise NotImplementedError(
"Invalid arguments to trigger action item")
f"Invalid entity type '{entity_type}' to trigger action item"
)
event_data["error_info"] = error_info
self._controller.emit_event(
@ -276,11 +277,6 @@ class LoaderActionsModel:
self,
loader,
contexts,
project_name,
folder_ids=None,
product_ids=None,
version_ids=None,
representation_ids=None,
repre_name=None,
):
label = self._get_action_label(loader)
@ -293,11 +289,6 @@ class LoaderActionsModel:
tooltip=self._get_action_tooltip(loader),
options=loader.get_options(contexts),
order=loader.order,
project_name=project_name,
folder_ids=folder_ids,
product_ids=product_ids,
version_ids=version_ids,
representation_ids=representation_ids,
)
def _get_loaders(self, project_name):
@ -570,17 +561,11 @@ class LoaderActionsModel:
item = self._create_loader_action_item(
loader,
repre_contexts,
project_name=project_name,
folder_ids=repre_folder_ids,
product_ids=repre_product_ids,
version_ids=repre_version_ids,
representation_ids=repre_ids,
repre_name=repre_name,
)
action_items.append(item)
# Product Loaders.
version_ids = set(version_context_by_id.keys())
product_folder_ids = set()
product_ids = set()
for product_context in version_context_by_id.values():
@ -592,10 +577,6 @@ class LoaderActionsModel:
item = self._create_loader_action_item(
loader,
version_contexts,
project_name=project_name,
folder_ids=product_folder_ids,
product_ids=product_ids,
version_ids=version_ids,
)
action_items.append(item)

View file

@ -439,9 +439,9 @@ class ProductsWidget(QtWidgets.QWidget):
self._controller.trigger_action_item(
action_item.identifier,
options,
action_item.project_name,
version_ids=action_item.version_ids,
representation_ids=action_item.representation_ids,
project_name,
version_ids,
"version",
)
def _on_selection_change(self):

View file

@ -401,7 +401,7 @@ class RepresentationsWidget(QtWidgets.QWidget):
self._controller.trigger_action_item(
action_item.identifier,
options,
action_item.project_name,
version_ids=action_item.version_ids,
representation_ids=action_item.representation_ids,
self._selected_project_name,
repre_ids,
"representation",
)