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.pagination import PageNumberPagination from rest_framework.permissions import AllowAny, IsAuthenticated from rest_framework.viewsets import ModelViewSet from core.apps.evaluation.filters.request import EvaluationrequestFilter from core.apps.evaluation.models import EvaluationrequestModel from core.apps.evaluation.serializers.request import ( CreateEvaluationrequestSerializer, ListEvaluationrequestSerializer, RetrieveEvaluationrequestSerializer, ) # class RequestPagination(PageNumberPagination): # page_size = 20 # page_size_query_param = "limit" # max_page_size = 100 @extend_schema(tags=["EvaluationRequest"]) class EvaluationrequestView(BaseViewSetMixin, ModelViewSet): serializer_class = ListEvaluationrequestSerializer permission_classes = [IsAuthenticated] # pagination_class = RequestPagination filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter] filterset_class = EvaluationrequestFilter search_fields = [ "customer_inn_number", "owner_inn_number", "tex_passport", ] ordering_fields = [ "created_at", "updated_at", "rate_type", "object_type", "status", ] ordering = ["-created_at"] action_permission_classes = {} action_serializer_class = { "list": ListEvaluationrequestSerializer, "retrieve": RetrieveEvaluationrequestSerializer, "create": CreateEvaluationrequestSerializer, } def get_queryset(self): return EvaluationrequestModel.objects.filter( user=self.request.user ).order_by("-created_at")