mirror of
https://github.com/inventree/InvenTree.git
synced 2025-08-10 05:40:55 +00:00
Cleanup (and note to self)
This commit is contained in:
@@ -83,9 +83,11 @@ class AllStatusViews(StatusView):
|
|||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
"""Perform a GET request to learn information about status codes."""
|
"""Perform a GET request to learn information about status codes."""
|
||||||
data = get_status_api_response()
|
data = get_status_api_response(StatusCode)
|
||||||
|
|
||||||
# Extend with MachineStatus classes
|
# Extend with MachineStatus classes
|
||||||
data.update(get_status_api_response(MachineStatus, prefix=['MachineStatus']))
|
data.update(get_status_api_response(MachineStatus, prefix=['MachineStatus']))
|
||||||
|
|
||||||
return Response(data)
|
return Response(data)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -17,14 +17,36 @@ def get_status_api_response(base_class=StatusCode, prefix=None):
|
|||||||
base_class: The base class to search for subclasses.
|
base_class: The base class to search for subclasses.
|
||||||
prefix: A list of strings to prefix the class names with.
|
prefix: A list of strings to prefix the class names with.
|
||||||
"""
|
"""
|
||||||
return {
|
# TODO: Come back and fix this...
|
||||||
'__'.join([*(prefix or []), k.__name__]): {
|
# return {
|
||||||
'class': k.__name__,
|
# '__'.join([*(prefix or []), k.__name__]): {
|
||||||
'values': k.dict(),
|
# 'class': k.__name__,
|
||||||
}
|
# 'values': k.dict(),
|
||||||
for k in get_custom_classes(base_class=base_class, subclass=False)
|
# }
|
||||||
|
# for k in get_custom_classes(base_class=base_class, subclass=False)
|
||||||
|
# }
|
||||||
|
|
||||||
|
classes = inheritors(base_class, subclasses=True)
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
|
||||||
|
for cls in classes:
|
||||||
|
name = cls.__name__
|
||||||
|
data[name] = {'class': name, 'values': cls.dict()}
|
||||||
|
|
||||||
|
# Extend with custom values
|
||||||
|
for item in cls.custom_values():
|
||||||
|
label = str(item.name)
|
||||||
|
if label not in data[name]['values']:
|
||||||
|
data[name]['values'][label] = {
|
||||||
|
'color': item.color,
|
||||||
|
'key': item.key,
|
||||||
|
'label': item.label,
|
||||||
|
'name': item.name,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
def state_color_mappings():
|
def state_color_mappings():
|
||||||
"""Return a list of custom user state colors."""
|
"""Return a list of custom user state colors."""
|
||||||
@@ -55,20 +77,38 @@ def get_custom_classes(
|
|||||||
|
|
||||||
states = {}
|
states = {}
|
||||||
|
|
||||||
|
print('get_custom_classes:', len(discovered_classes))
|
||||||
|
|
||||||
for cls in discovered_classes:
|
for cls in discovered_classes:
|
||||||
name = cls.__name__
|
name = cls.__name__
|
||||||
states[name] = cls
|
# states[name] =
|
||||||
|
|
||||||
data = [(str(m.name), (m.value, m.label, m.color)) for m in cls]
|
# print("-", cls)
|
||||||
|
|
||||||
labels = [str(item[0]) for item in data]
|
if name in states:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# states[name] = cls
|
||||||
|
|
||||||
|
data = [
|
||||||
|
(str(m.name), (m.value, m.label, m.color))
|
||||||
|
for m in cls
|
||||||
|
if cls._is_element(m.name)
|
||||||
|
]
|
||||||
|
# values = cls.values()
|
||||||
|
|
||||||
|
labels = [item[0] for item in data]
|
||||||
|
|
||||||
for item in cls.custom_values():
|
for item in cls.custom_values():
|
||||||
label = str(item.name)
|
label = str(item.name)
|
||||||
if label not in labels and label not in cls.labels():
|
if label not in labels:
|
||||||
data += [(str(item.name), (item.key, item.label, item.color))]
|
setattr(cls, label, (item.key, item.label, item.color))
|
||||||
|
# data += [(label, (item.key, item.label, item.color))]
|
||||||
|
# values += [(str(item.name), (item.key, item.label, item.color))]
|
||||||
|
|
||||||
# Re-assemble the enum
|
# Re-assemble the enum
|
||||||
states[name] = base_class(name, data)
|
# states[name] = base_class(name, values)
|
||||||
|
# states[name] = base_class(name, data)
|
||||||
|
states[name] = cls
|
||||||
|
|
||||||
return states.values()
|
return states.values()
|
||||||
|
@@ -108,9 +108,11 @@ class StatusCode(BaseEnum):
|
|||||||
from common.models import InvenTreeCustomUserStateModel
|
from common.models import InvenTreeCustomUserStateModel
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return InvenTreeCustomUserStateModel.objects.filter(
|
return list(
|
||||||
|
InvenTreeCustomUserStateModel.objects.filter(
|
||||||
reference_status=cls.__name__
|
reference_status=cls.__name__
|
||||||
)
|
)
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user