feat: add search, filter, sort and pagination to QuickEvaluation list API
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user