mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-27 14:22:37 +01:00
changed openpype version enums to text inputs
This commit is contained in:
parent
1249886294
commit
376c4f9778
4 changed files with 59 additions and 95 deletions
|
|
@ -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"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
49
openpype/settings/entities/op_version_entity.py
Normal file
49
openpype/settings/entities/op_version_entity.py
Normal 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)
|
||||
|
|
@ -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"
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue