From ab722f6ae6599d32b5fc9fb20150b2439424cdf7 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 14:21:34 +0200 Subject: [PATCH] selection object have method to get project settings --- client/ayon_core/pipeline/actions.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/pipeline/actions.py b/client/ayon_core/pipeline/actions.py index eae2fc94b5..860fed5e8b 100644 --- a/client/ayon_core/pipeline/actions.py +++ b/client/ayon_core/pipeline/actions.py @@ -3,6 +3,7 @@ import warnings import ayon_api +from ayon_core.settings import get_studio_settings, get_project_settings from ayon_core.pipeline.plugin_discover import ( discover, register_plugin, @@ -40,7 +41,8 @@ class LauncherActionSelection: task_name=None, project_entity=None, folder_entity=None, - task_entity=None + task_entity=None, + project_settings=None, ): self._project_name = project_name self._folder_id = folder_id @@ -53,6 +55,8 @@ class LauncherActionSelection: self._folder_entity = folder_entity self._task_entity = task_entity + self._project_settings = project_settings + def __getitem__(self, key): warnings.warn( ( @@ -255,6 +259,22 @@ class LauncherActionSelection: ) return self._task_entity + def get_project_settings(self): + """Project settings for the selection. + + Returns: + dict[str, Any]: Project settings or studio settings if + project is not selected. + + """ + if self._project_settings is None: + if self._project_name is None: + settings = get_studio_settings() + else: + settings = get_project_settings(self._project_name) + self._project_settings = settings + return self._project_settings + @property def is_project_selected(self): """Return whether a project is selected.