57 lines
1.8 KiB
Python
57 lines
1.8 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.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")
|