- Create ReferenceitemModel with type, name, parent (self FK), order, is_active fields - Add ReferenceType choices: brand, marka, color, fuel_type, body_type, car_position, state_car - Implement ReferenceItem API (list, retrieve) with filter by type/parent/is_active, search, ordering - Add ReferenceItem admin with list_filter, search, inline editing - Change QuickEvaluation FK fields from shared.OptionsModel to evaluation.ReferenceitemModel - Update serializers and views to use .name instead of .key - Add ReferenceItem to unfold admin navigation
53 lines
1.8 KiB
Python
53 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.parsers import FormParser, MultiPartParser
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
from core.apps.evaluation.filters.quick import QuickevaluationFilter
|
|
from core.apps.evaluation.models import QuickEvaluationModel
|
|
from core.apps.evaluation.serializers.quick import (
|
|
CreateQuickevaluationSerializer,
|
|
ListQuickevaluationSerializer,
|
|
RetrieveQuickevaluationSerializer,
|
|
)
|
|
|
|
|
|
@extend_schema(tags=["QuickEvaluation"])
|
|
class QuickEvaluationView(BaseViewSetMixin, ModelViewSet):
|
|
queryset = QuickEvaluationModel.objects.select_related(
|
|
"created_by", "brand", "marka", "color", "fuel_type",
|
|
"body_type", "state_car", "car_position",
|
|
).all()
|
|
serializer_class = ListQuickevaluationSerializer
|
|
permission_classes = [AllowAny]
|
|
parser_classes = [MultiPartParser, FormParser]
|
|
|
|
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
|
filterset_class = QuickevaluationFilter
|
|
search_fields = ["car_number", "marka__name", "brand__name"]
|
|
ordering_fields = [
|
|
"created_at",
|
|
"updated_at",
|
|
"car_number",
|
|
"brand__name",
|
|
"marka__name",
|
|
"car_type",
|
|
"car_manufactured_date",
|
|
"color__name",
|
|
"fuel_type__name",
|
|
"state_car__name",
|
|
"status",
|
|
"distance_covered",
|
|
]
|
|
ordering = ["-created_at"]
|
|
|
|
action_permission_classes = {}
|
|
action_serializer_class = {
|
|
"list": ListQuickevaluationSerializer,
|
|
"retrieve": RetrieveQuickevaluationSerializer,
|
|
"create": CreateQuickevaluationSerializer,
|
|
}
|