From fc2a49e3835aabc7ea6146cc20d4d51c2f9cee37 Mon Sep 17 00:00:00 2001 From: jezscha Date: Fri, 28 May 2021 14:56:33 +0000 Subject: [PATCH 1/3] Create draft PR for #1605 From ac82a981920ee3643b4ee558422d545cc5ccbc54 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 28 May 2021 16:59:01 +0200 Subject: [PATCH 2/3] Settings: Task types enumerator entity --- openpype/settings/entities/__init__.py | 2 ++ openpype/settings/entities/enum_entity.py | 34 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/openpype/settings/entities/__init__.py b/openpype/settings/entities/__init__.py index 33881a60975..f64ca1e98d7 100644 --- a/openpype/settings/entities/__init__.py +++ b/openpype/settings/entities/__init__.py @@ -103,6 +103,7 @@ EnumEntity, AppsEnumEntity, ToolsEnumEntity, + TaskTypeEnumEntity, ProvidersEnum ) @@ -154,6 +155,7 @@ "EnumEntity", "AppsEnumEntity", "ToolsEnumEntity", + "TaskTypeEnumEntity", "ProvidersEnum", "ListEntity", diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index c6021b68ded..ee909bc1a5c 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -219,6 +219,40 @@ def set_override_state(self, *args, **kwargs): self._current_value = new_value +class TaskTypeEnumEntity(BaseEnumEntity): + schema_types = ["task-types-enum"] + + def _item_initalization(self): + self.multiselection = True + self.value_on_not_set = [] + self.enum_items = [] + self.valid_keys = set() + self.valid_value_types = (list, ) + self.placeholder = None + + def _get_enum_values(self): + from ..lib import get_default_anatomy_settings + anatomy_settings = get_default_anatomy_settings() + + valid_keys = set() + enum_items = [] + for task_type, _task_attr in anatomy_settings["tasks"].items(): + enum_items.append({task_type: task_type}) + valid_keys.add(task_type) + + return enum_items, valid_keys + + def set_override_state(self, *args, **kwargs): + super(TaskTypeEnumEntity, self).set_override_state(*args, **kwargs) + + self.enum_items, self.valid_keys = self._get_enum_values() + new_value = [] + for key in self._current_value: + if key in self.valid_keys: + new_value.append(key) + self._current_value = new_value + + class ProvidersEnum(BaseEnumEntity): schema_types = ["providers-enum"] From 4e5375309d651a691101f78c0200b7e5d666e6e6 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 31 May 2021 11:23:50 +0200 Subject: [PATCH 3/3] Settings: task keys enumerator generated from project related settings --- openpype/settings/entities/enum_entity.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index ee909bc1a5c..5df365508c9 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -231,12 +231,13 @@ def _item_initalization(self): self.placeholder = None def _get_enum_values(self): - from ..lib import get_default_anatomy_settings - anatomy_settings = get_default_anatomy_settings() + anatomy_entity = self.get_entity_from_path( + "project_settings/project_anatomy" + ) valid_keys = set() enum_items = [] - for task_type, _task_attr in anatomy_settings["tasks"].items(): + for task_type in anatomy_entity["tasks"].keys(): enum_items.append({task_type: task_type}) valid_keys.add(task_type)