changed openpype version enums to text inputs

This commit is contained in:
iLLiCiTiT 2021-12-06 18:10:49 +01:00
parent 1249886294
commit 376c4f9778
4 changed files with 59 additions and 95 deletions

View file

@ -107,8 +107,6 @@ from .enum_entity import (
TaskTypeEnumEntity,
DeadlineUrlEnumEntity,
AnatomyTemplatesEnumEntity,
ProductionVersionsEnumEntity,
StagingVersionsEnumEntity
)
from .list_entity import ListEntity
@ -124,7 +122,10 @@ from .dict_conditional import (
)
from .anatomy_entities import AnatomyEntity
from .op_version_entity import (
ProductionVersionsInputEntity,
StagingVersionsInputEntity
)
__all__ = (
"DefaultsNotDefined",
@ -171,8 +172,6 @@ __all__ = (
"TaskTypeEnumEntity",
"DeadlineUrlEnumEntity",
"AnatomyTemplatesEnumEntity",
"ProductionVersionsEnumEntity",
"StagingVersionsEnumEntity",
"ListEntity",
@ -185,5 +184,8 @@ __all__ = (
"DictConditionalEntity",
"SyncServerProviders",
"AnatomyEntity"
"AnatomyEntity",
"ProductionVersionsInputEntity",
"StagingVersionsInputEntity"
)

View file

@ -1,5 +1,4 @@
import copy
import sys
from openpype.lib.openpype_version import (
op_version_control_available,
get_remote_versions,
@ -9,7 +8,6 @@ from openpype.lib.openpype_version import (
from .input_entities import InputEntity
from .exceptions import EntitySchemaError
from .lib import (
OverrideState,
NOT_SET,
STRING_TYPE
)
@ -572,88 +570,3 @@ class AnatomyTemplatesEnumEntity(BaseEnumEntity):
self.enum_items, self.valid_keys = self._get_enum_values()
if self._current_value not in self.valid_keys:
self._current_value = self.value_on_not_set
class _OpenPypeVersionEnum(BaseEnumEntity):
def _item_initialization(self):
self.multiselection = False
self.valid_value_types = (STRING_TYPE, )
self.value_on_not_set = ""
items = self._get_default_items()
self.enum_items = items
self.valid_keys = self._extract_valid_keys(items)
def _extract_valid_keys(self, items):
return {
tuple(item.keys())[0]
for item in items
}
def _get_default_items(self):
return [
{"": "Latest"}
]
def _get_openpype_versions(self):
return []
def set_override_state(self, state, *args, **kwargs):
items = self._get_default_items()
versions = self._get_openpype_versions()
if versions is not None:
for version in versions:
items.append({version: version})
self.enum_items = items
self.valid_keys = self._extract_valid_keys(items)
# Studio value is not available in collected versions
if (
state is OverrideState.STUDIO
and self.had_studio_override
and self._studio_override_value not in self.valid_keys
):
# Define if entity should keep the value in settings.
# Value is marked as not existing anymore if
# - openpype version control is available
# - path to openpype zips is set
# - path to openpype zips is accessible (existing for this machine)
keep_value = True
if (
op_version_control_available()
and openpype_path_is_set()
and openpype_path_is_accessible()
):
keep_value = False
if keep_value:
self.enum_items.append(
{self._studio_override_value: self._studio_override_value}
)
self.valid_keys.add(self._studio_override_value)
super(_OpenPypeVersionEnum, self).set_override_state(
state, *args, **kwargs
)
class ProductionVersionsEnumEntity(_OpenPypeVersionEnum):
schema_types = ["production-versions-enum"]
def _get_openpype_versions(self):
if "OpenPypeVersion" in sys.modules:
OpenPypeVersion = sys.modules["OpenPypeVersion"]
return get_remote_versions(production=True)
return None
class StagingVersionsEnumEntity(_OpenPypeVersionEnum):
schema_types = ["staging-versions-enum"]
def _get_openpype_versions(self):
if "OpenPypeVersion" in sys.modules:
OpenPypeVersion = sys.modules["OpenPypeVersion"]
return get_remote_versions(staging=True)
return None

View file

@ -0,0 +1,49 @@
from openpype.lib.openpype_version import (
op_version_control_available,
get_remote_versions,
openpype_path_is_set,
openpype_path_is_accessible
)
from .input_entities import TextEntity
from .lib import OverrideState
class _OpenPypeVersionInput(TextEntity):
def _item_initialization(self):
super(_OpenPypeVersionInput, self)._item_initialization()
self.multiline = False
self.placeholder_text = "Latest"
self.value_hints = []
def _get_openpype_versions(self):
return []
def set_override_state(self, state, *args, **kwargs):
value_hints = []
if state is OverrideState.STUDIO:
versions = self._get_openpype_versions()
if versions is not None:
for version in versions:
value_hints.append(str(version))
self.value_hints = value_hints
super(_OpenPypeVersionInput, self).set_override_state(
state, *args, **kwargs
)
class ProductionVersionsInputEntity(_OpenPypeVersionInput):
schema_types = ["production-versions-text"]
def _get_openpype_versions(self):
return ["", "asd", "dsa", "3.6"]
return get_remote_versions(production=True)
class StagingVersionsInputEntity(_OpenPypeVersionInput):
schema_types = ["staging-versions-text"]
def _get_openpype_versions(self):
return ["", "asd+staging", "dsa+staging", "3.6+staging"]
return get_remote_versions(staging=True)

View file

@ -31,12 +31,12 @@
"type": "splitter"
},
{
"type": "production-versions-enum",
"type": "production-versions-text",
"key": "production_version",
"label": "Production version"
},
{
"type": "staging-versions-enum",
"type": "staging-versions-text",
"key": "staging_version",
"label": "Staging version"
},