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, }