From ac82a981920ee3643b4ee558422d545cc5ccbc54 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 28 May 2021 16:59:01 +0200 Subject: [PATCH] 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 33881a6097..f64ca1e98d 100644 --- a/openpype/settings/entities/__init__.py +++ b/openpype/settings/entities/__init__.py @@ -103,6 +103,7 @@ from .enum_entity import ( EnumEntity, AppsEnumEntity, ToolsEnumEntity, + TaskTypeEnumEntity, ProvidersEnum ) @@ -154,6 +155,7 @@ __all__ = ( "EnumEntity", "AppsEnumEntity", "ToolsEnumEntity", + "TaskTypeEnumEntity", "ProvidersEnum", "ListEntity", diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index c6021b68de..ee909bc1a5 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -219,6 +219,40 @@ class ToolsEnumEntity(BaseEnumEntity): 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"]