mirror of
https://github.com/inventree/InvenTree.git
synced 2025-08-10 05:40:55 +00:00
Add serializer class definition
This commit is contained in:
@@ -19,6 +19,7 @@ from InvenTree.permissions import IsStaffOrReadOnly
|
|||||||
from InvenTree.serializers import EmptySerializer
|
from InvenTree.serializers import EmptySerializer
|
||||||
from machine.machine_type import MachineStatus
|
from machine.machine_type import MachineStatus
|
||||||
|
|
||||||
|
from .serializers import GenericStateClassSerializer
|
||||||
from .states import StatusCode
|
from .states import StatusCode
|
||||||
|
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ class StatusView(GenericAPIView):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
|
serializer_class = GenericStateClassSerializer
|
||||||
|
|
||||||
# Override status_class for implementing subclass
|
# Override status_class for implementing subclass
|
||||||
MODEL_REF = 'statusmodel'
|
MODEL_REF = 'statusmodel'
|
||||||
@@ -56,7 +58,7 @@ class StatusView(GenericAPIView):
|
|||||||
@extend_schema(
|
@extend_schema(
|
||||||
description='Retrieve information about a specific status code',
|
description='Retrieve information about a specific status code',
|
||||||
responses={
|
responses={
|
||||||
200: OpenApiResponse(description='Status code information'),
|
200: GenericStateClassSerializer,
|
||||||
400: OpenApiResponse(description='Invalid request'),
|
400: OpenApiResponse(description='Invalid request'),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -87,7 +89,9 @@ class StatusView(GenericAPIView):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return Response(data)
|
serializer = GenericStateClassSerializer(data, many=False)
|
||||||
|
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
|
||||||
class AllStatusViews(StatusView):
|
class AllStatusViews(StatusView):
|
||||||
|
39
src/backend/InvenTree/generic/states/serializers.py
Normal file
39
src/backend/InvenTree/generic/states/serializers.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
"""Serializer classes for handling generic state information."""
|
||||||
|
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from rest_framework import serializers
|
||||||
|
|
||||||
|
|
||||||
|
class GenericStateValueSerializer(serializers.Serializer):
|
||||||
|
"""API serializer for generic state information."""
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
"""Meta class for GenericStateValueSerializer."""
|
||||||
|
|
||||||
|
fields = ['key', 'logical_key', 'name', 'label', 'color']
|
||||||
|
|
||||||
|
key = serializers.IntegerField(label=_('Key'), required=True)
|
||||||
|
|
||||||
|
logical_key = serializers.CharField(label=_('Logical Key'), required=False)
|
||||||
|
|
||||||
|
name = serializers.CharField(label=_('Name'), required=True)
|
||||||
|
|
||||||
|
label = serializers.CharField(label=_('Label'), required=True)
|
||||||
|
|
||||||
|
color = serializers.CharField(label=_('Color'), required=False)
|
||||||
|
|
||||||
|
|
||||||
|
class GenericStateClassSerializer(serializers.Serializer):
|
||||||
|
"""API serializer for generic state class information."""
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
"""Meta class for GenericStateClassSerializer."""
|
||||||
|
|
||||||
|
fields = ['class', 'values']
|
||||||
|
|
||||||
|
class_ = serializers.CharField(label=_('Class'), read_only=True)
|
||||||
|
|
||||||
|
values = serializers.DictField(
|
||||||
|
child=GenericStateValueSerializer(), label=_('Values'), required=True
|
||||||
|
)
|
Reference in New Issue
Block a user