Files
backend-v1/core/apps/evaluation/views/quick.py

48 lines
1.6 KiB
Python

from django_core.mixins import BaseViewSetMixin
from django_filters.rest_framework import DjangoFilterBackend
from drf_spectacular.utils import extend_schema
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.permissions import AllowAny
from rest_framework.viewsets import ReadOnlyModelViewSet
from core.apps.evaluation.filters.quick import QuickevaluationFilter
from core.apps.evaluation.models import QuickEvaluationModel
from core.apps.evaluation.serializers.quick import (
CreateQuickevaluationSerializer,
ListQuickevaluationSerializer,
RetrieveQuickevaluationSerializer,
)
@extend_schema(tags=["QuickEvaluation"])
class QuickEvaluationView(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = QuickEvaluationModel.objects.select_related("created_by").all()
serializer_class = ListQuickevaluationSerializer
permission_classes = [AllowAny]
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_class = QuickevaluationFilter
search_fields = ["license_plate", "model", "brand"]
ordering_fields = [
"created_at",
"updated_at",
"license_plate",
"brand",
"model",
"car_type",
"manufacture_year",
"color",
"fuel_type",
"state_car",
"status",
"mileage",
]
ordering = ["-created_at"]
action_permission_classes = {}
action_serializer_class = {
"list": ListQuickevaluationSerializer,
"retrieve": RetrieveQuickevaluationSerializer,
"create": CreateQuickevaluationSerializer,
}