93 lines
3.4 KiB
Python
93 lines
3.4 KiB
Python
# django core
|
|
from django_core.mixins import BaseViewSetMixin
|
|
|
|
# django filters
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
|
|
|
# swagger
|
|
from drf_spectacular.utils import extend_schema
|
|
|
|
# rest framework
|
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.viewsets import ReadOnlyModelViewSet
|
|
|
|
# core apps
|
|
from core.apps.evaluation.filters.reference import ReferenceitemFilter
|
|
from core.apps.evaluation.models import ReferenceitemModel
|
|
from core.apps.evaluation.serializers import reference as serializers
|
|
|
|
|
|
@extend_schema(tags=["EvaluationPurpose"])
|
|
class EvaluationPurposeView(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|
queryset = ReferenceitemModel.objects.filter(
|
|
type="evaluation_purpose", is_active=True
|
|
).order_by("order", "name")
|
|
serializer_class = serializers.EvaluationPurposeSerializer
|
|
permission_classes = [AllowAny]
|
|
pagination_class = None
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name", "order"]
|
|
ordering = ["order", "name"]
|
|
|
|
|
|
@extend_schema(tags=["DeterminedValue"])
|
|
class DeterminedValueView(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|
queryset = ReferenceitemModel.objects.filter(
|
|
type="determined_value", is_active=True
|
|
).order_by("order", "name")
|
|
serializer_class = serializers.DeterminedValueSerializer
|
|
permission_classes = [AllowAny]
|
|
pagination_class = None
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name", "order"]
|
|
ordering = ["order", "name"]
|
|
|
|
|
|
@extend_schema(tags=["PropertyRights"])
|
|
class PropertyRightsView(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|
queryset = ReferenceitemModel.objects.filter(
|
|
type="property_rights", is_active=True
|
|
).order_by("order", "name")
|
|
serializer_class = serializers.LabelValueSerializer
|
|
permission_classes = [AllowAny]
|
|
pagination_class = None
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name", "order"]
|
|
ordering = ["order", "name"]
|
|
|
|
|
|
@extend_schema(tags=["OwnershipForm"])
|
|
class OwnershipFormView(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|
queryset = ReferenceitemModel.objects.filter(
|
|
type="ownership_form", is_active=True
|
|
).order_by("order", "name")
|
|
serializer_class = serializers.LabelValueSerializer
|
|
permission_classes = [AllowAny]
|
|
pagination_class = None
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name", "order"]
|
|
ordering = ["order", "name"]
|
|
|
|
|
|
@extend_schema(tags=["ReferenceItem"])
|
|
class ReferenceitemView(BaseViewSetMixin, ReadOnlyModelViewSet):
|
|
queryset = ReferenceitemModel.objects.select_related("parent").filter(is_active=True)
|
|
serializer_class = serializers.ListReferenceitemSerializer
|
|
permission_classes = [AllowAny]
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
filterset_class = ReferenceitemFilter
|
|
search_fields = ["name"]
|
|
ordering_fields = ["name", "order", "type"]
|
|
ordering = ["order", "name"]
|
|
action_permission_classes = {}
|
|
action_serializer_class = {
|
|
"list": serializers.ListReferenceitemSerializer,
|
|
"retrieve": serializers.RetrieveReferenceitemSerializer,
|
|
"create": serializers.CreateReferenceitemSerializer,
|
|
}
|