Skip to content
Snippets Groups Projects
Commit 72b70504 authored by Jiří Setnička's avatar Jiří Setnička
Browse files

DB: Na MOEnum zavádíme obecné metody choices a coerce

Pro použití ve formulářích, coerce slouží k převodu stringu na objekt Enumu.
parent bc1459ed
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,22 @@ class MOEnum(str, PythonEnum):
def _generate_next_value_(name, start, count, last_values):
return name
@classmethod
def choices(enum):
out = []
for item in enum:
out.append((item.name, item.friendly_name()))
return out
@classmethod
def coerce(enum, name):
if isinstance(name, enum):
return name
try:
return enum[name]
except KeyError:
raise ValueError(name)
class PlaceType(MOEnum):
region = auto()
......@@ -55,15 +71,6 @@ class PlaceType(MOEnum):
out.append((item.name, name))
return out
@classmethod
def coerce(enum, name):
if isinstance(name, enum):
return name
try:
return enum[name]
except KeyError:
raise ValueError(name)
# list of allowed levels
place_type_names_and_levels = {
......@@ -233,13 +240,6 @@ class PartState(MOEnum):
present = auto()
absent = auto()
@classmethod
def choices(enum):
out = []
for item in enum:
out.append((item.name, item.friendly_name()))
return out
def friendly_name(self) -> str:
return part_state_names[self]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment