diff --git a/pype/settings/entities/base_entity.py b/pype/settings/entities/base_entity.py index 95767f464f..c231c8e41e 100644 --- a/pype/settings/entities/base_entity.py +++ b/pype/settings/entities/base_entity.py @@ -154,7 +154,6 @@ class BaseEntity: def get_child_path(self, child_obj): pass - @abstractmethod def schema_validations(self): pass @@ -671,6 +670,7 @@ class SystemRootEntity(RootEntity): value = default_value.get(key, NOT_SET) child_obj.update_default_value(value) + studio_overrides = {} studio_overrides = get_studio_system_settings_overrides() for key, child_obj in self.non_gui_children.items(): value = studio_overrides.get(key, NOT_SET) diff --git a/pype/settings/entities/input_entities.py b/pype/settings/entities/input_entities.py index d694918282..5ad444430a 100644 --- a/pype/settings/entities/input_entities.py +++ b/pype/settings/entities/input_entities.py @@ -182,11 +182,10 @@ class InputEntity(ItemEntity): def set_override_state(self, state): self.override_state = state - if ( - not self.has_default_value - and state in (OverrideState.STUDIO, OverrideState.PROJECT) - ): - raise DefaultsNotDefined(self) + if not self.has_default_value and state > OverrideState.DEFAULTS: + # Ignore if is dynamic item and use default in that case + if not self.is_dynamic_item and not self.is_in_dynamic_item: + raise DefaultsNotDefined(self) if state is OverrideState.STUDIO: self._has_studio_override = ( @@ -431,11 +430,10 @@ class RawJsonEntity(InputEntity): def set_override_state(self, state): self.override_state = state - if ( - not self.has_default_value - and state in (OverrideState.STUDIO, OverrideState.PROJECT) - ): - raise DefaultsNotDefined(self) + if not self.has_default_value and state > OverrideState.DEFAULTS: + # Ignore if is dynamic item and use default in that case + if not self.is_dynamic_item and not self.is_in_dynamic_item: + raise DefaultsNotDefined(self) if state is OverrideState.STUDIO: self._has_studio_override = ( diff --git a/pype/settings/entities/item_entities.py b/pype/settings/entities/item_entities.py index 3144562e55..5f92135499 100644 --- a/pype/settings/entities/item_entities.py +++ b/pype/settings/entities/item_entities.py @@ -440,11 +440,10 @@ class DictMutableKeysEntity(ItemEntity): def set_override_state(self, state): # TODO change metadata self.override_state = state - if ( - not self.has_default_value - and state in (OverrideState.STUDIO, OverrideState.PROJECT) - ): - raise DefaultsNotDefined(self) + if not self.has_default_value and state > OverrideState.DEFAULTS: + # Ignore if is dynamic item and use default in that case + if not self.is_dynamic_item and not self.is_in_dynamic_item: + raise DefaultsNotDefined(self) using_overrides = True if ( @@ -800,11 +799,10 @@ class ListStrictEntity(ItemEntity): def set_override_state(self, state): # TODO use right value as current_value is held here self.override_state = state - if ( - not self.has_default_value - and state in (OverrideState.STUDIO, OverrideState.PROJECT) - ): - raise DefaultsNotDefined(self) + if not self.has_default_value and state > OverrideState.DEFAULTS: + # Ignore if is dynamic item and use default in that case + if not self.is_dynamic_item and not self.is_in_dynamic_item: + raise DefaultsNotDefined(self) for child_obj in self.children: child_obj.set_override_state(state) diff --git a/pype/settings/entities/list_entity.py b/pype/settings/entities/list_entity.py index 7c9af78876..f1ac2983cb 100644 --- a/pype/settings/entities/list_entity.py +++ b/pype/settings/entities/list_entity.py @@ -134,7 +134,9 @@ class ListEntity(ItemEntity): self.children.pop(0) if not self.has_default_value and state > OverrideState.DEFAULTS: - raise DefaultsNotDefined(self) + # Ignore if is dynamic item and use default in that case + if not self.is_dynamic_item and not self.is_in_dynamic_item: + raise DefaultsNotDefined(self) value = NOT_SET if self.override_state is OverrideState.PROJECT: