mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Publisher: Fix disappearing actions (#5184)
* store action ids by plugin ids * fix underscore in variables * fix access to action
This commit is contained in:
parent
7973c5fbe0
commit
6e69d3a87f
1 changed files with 10 additions and 8 deletions
|
|
@ -443,29 +443,29 @@ class PublishPluginsProxy:
|
|||
|
||||
def __init__(self, plugins):
|
||||
plugins_by_id = {}
|
||||
actions_by_id = {}
|
||||
actions_by_plugin_id = {}
|
||||
action_ids_by_plugin_id = {}
|
||||
for plugin in plugins:
|
||||
plugin_id = plugin.id
|
||||
plugins_by_id[plugin_id] = plugin
|
||||
|
||||
action_ids = []
|
||||
actions_by_id = {}
|
||||
action_ids_by_plugin_id[plugin_id] = action_ids
|
||||
actions_by_plugin_id[plugin_id] = actions_by_id
|
||||
|
||||
actions = getattr(plugin, "actions", None) or []
|
||||
for action in actions:
|
||||
action_id = action.id
|
||||
if action_id in actions_by_id:
|
||||
continue
|
||||
action_ids.append(action_id)
|
||||
actions_by_id[action_id] = action
|
||||
|
||||
self._plugins_by_id = plugins_by_id
|
||||
self._actions_by_id = actions_by_id
|
||||
self._actions_by_plugin_id = actions_by_plugin_id
|
||||
self._action_ids_by_plugin_id = action_ids_by_plugin_id
|
||||
|
||||
def get_action(self, action_id):
|
||||
return self._actions_by_id[action_id]
|
||||
def get_action(self, plugin_id, action_id):
|
||||
return self._actions_by_plugin_id[plugin_id][action_id]
|
||||
|
||||
def get_plugin(self, plugin_id):
|
||||
return self._plugins_by_id[plugin_id]
|
||||
|
|
@ -497,7 +497,9 @@ class PublishPluginsProxy:
|
|||
"""
|
||||
|
||||
return [
|
||||
self._create_action_item(self._actions_by_id[action_id], plugin_id)
|
||||
self._create_action_item(
|
||||
self.get_action(plugin_id, action_id), plugin_id
|
||||
)
|
||||
for action_id in self._action_ids_by_plugin_id[plugin_id]
|
||||
]
|
||||
|
||||
|
|
@ -2308,7 +2310,7 @@ class PublisherController(BasePublisherController):
|
|||
def run_action(self, plugin_id, action_id):
|
||||
# TODO handle result in UI
|
||||
plugin = self._publish_plugins_proxy.get_plugin(plugin_id)
|
||||
action = self._publish_plugins_proxy.get_action(action_id)
|
||||
action = self._publish_plugins_proxy.get_action(plugin_id, action_id)
|
||||
|
||||
result = pyblish.plugin.process(
|
||||
plugin, self._publish_context, None, action.id
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue