feat: add search, filter, sort and pagination to QuickEvaluation list API

This commit is contained in:
Husanjonazamov
2026-03-09 13:21:44 +05:00
parent 9c176674f9
commit 8feee78ce4
13 changed files with 168 additions and 21 deletions

View File

@@ -1,8 +1,11 @@
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,
@@ -13,10 +16,29 @@ from core.apps.evaluation.serializers.quick import (
@extend_schema(tags=["QuickEvaluation"])
class QuickEvaluationView(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = QuickEvaluationModel.objects.all()
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,