replaced providers-enum with sync-server-providers to be able set system settings for provider

This commit is contained in:
iLLiCiTiT 2021-09-09 15:17:23 +02:00
parent a5bbe779fb
commit d961e0a262
4 changed files with 52 additions and 49 deletions

View file

@ -105,7 +105,6 @@ from .enum_entity import (
AppsEnumEntity,
ToolsEnumEntity,
TaskTypeEnumEntity,
ProvidersEnum,
DeadlineUrlEnumEntity,
AnatomyTemplatesEnumEntity
)
@ -113,7 +112,10 @@ from .enum_entity import (
from .list_entity import ListEntity
from .dict_immutable_keys_entity import DictImmutableKeysEntity
from .dict_mutable_keys_entity import DictMutableKeysEntity
from .dict_conditional import DictConditionalEntity
from .dict_conditional import (
DictConditionalEntity,
SyncServerProviders
)
from .anatomy_entities import AnatomyEntity
@ -161,7 +163,6 @@ __all__ = (
"AppsEnumEntity",
"ToolsEnumEntity",
"TaskTypeEnumEntity",
"ProvidersEnum",
"DeadlineUrlEnumEntity",
"AnatomyTemplatesEnumEntity",
@ -172,6 +173,7 @@ __all__ = (
"DictMutableKeysEntity",
"DictConditionalEntity",
"SyncServerProviders",
"AnatomyEntity"
)

View file

@ -724,3 +724,49 @@ class DictConditionalEntity(ItemEntity):
for children in self.children.values():
for child_entity in children:
child_entity.reset_callbacks()
class SyncServerProviders(DictConditionalEntity):
schema_types = ["sync-server-providers"]
def _add_children(self):
self.enum_key = "provider"
self.enum_label = "Provider"
enum_children = self._get_enum_children()
if not enum_children:
enum_children.append({
"key": None,
"label": "< Nothing >"
})
self.enum_children = enum_children
super(SyncServerProviders, self)._add_children()
def _get_enum_children(self):
from openpype_modules import sync_server
from openpype_modules.sync_server.providers import lib as lib_providers
provider_code_to_label = {}
providers = lib_providers.factory.providers
for provider_code, provider_info in providers.items():
provider, _ = provider_info
provider_code_to_label[provider_code] = provider.LABEL
system_settings_schema = (
sync_server
.SyncServerModule
.get_system_settings_schema()
)
enum_children = []
for provider_code, configurables in system_settings_schema.items():
label = provider_code_to_label.get(provider_code) or provider_code
enum_children.append({
"key": provider_code,
"label": label,
"children": configurables
})
return enum_children

View file

@ -407,44 +407,6 @@ class TaskTypeEnumEntity(BaseEnumEntity):
self._current_value = new_value
class ProvidersEnum(BaseEnumEntity):
schema_types = ["providers-enum"]
def _item_initalization(self):
self.multiselection = False
self.value_on_not_set = ""
self.enum_items = []
self.valid_keys = set()
self.valid_value_types = (str, )
self.placeholder = None
def _get_enum_values(self):
from openpype_modules.sync_server.providers import lib as lib_providers
providers = lib_providers.factory.providers
valid_keys = set()
valid_keys.add('')
enum_items = [{'': 'Choose Provider'}]
for provider_code, provider_info in providers.items():
provider, _ = provider_info
enum_items.append({provider_code: provider.LABEL})
valid_keys.add(provider_code)
return enum_items, valid_keys
def set_override_state(self, *args, **kwargs):
super(ProvidersEnum, self).set_override_state(*args, **kwargs)
self.enum_items, self.valid_keys = self._get_enum_values()
value_on_not_set = list(self.valid_keys)[0]
if self._current_value is NOT_SET:
self._current_value = value_on_not_set
self.value_on_not_set = value_on_not_set
class DeadlineUrlEnumEntity(BaseEnumEntity):
schema_types = ["deadline_url-enum"]

View file

@ -121,14 +121,7 @@
"collapsible_key": false,
"object_type":
{
"type": "dict",
"children": [
{
"type": "providers-enum",
"key": "provider",
"label": "Provider"
}
]
"type": "sync-server-providers"
}
}
]