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 ModelViewSet from core.apps.evaluation.filters.auto import AutoevaluationFilter from core.apps.evaluation.models import AutoEvaluationModel from core.apps.evaluation.serializers.auto import ( CreateAutoevaluationSerializer, ListAutoevaluationSerializer, RetrieveAutoevaluationSerializer, ) @extend_schema(tags=["AutoEvaluation"]) class AutoEvaluationView(BaseViewSetMixin, ModelViewSet): queryset = AutoEvaluationModel.objects.select_related( "valuation", "valuation__customer", "vehicle", ).all() serializer_class = ListAutoevaluationSerializer permission_classes = [AllowAny] filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter] filterset_class = AutoevaluationFilter search_fields = [ "registration_number", "car_model", "car_brand", "car_number", ] ordering_fields = [ "registration_number", "contract_date", "object_inspection_date", "rate_date", "rate_report_date", "rate_object_name", "object_type", "object_owner_type", "object_location_province", "object_location_district", "object_location_city", "tex_passport_serie_num", "tex_passport_gived_date", "car_brand", "car_model", "car_number", "manufacture_year", "car_color", "property_rights", "form_ownership", "value_determined", "rate_type", "status", "created_at", "updated_at", ] ordering = ["-created_at"] action_permission_classes = {} action_serializer_class = { "list": ListAutoevaluationSerializer, "retrieve": RetrieveAutoevaluationSerializer, "create": CreateAutoevaluationSerializer, }