From 9593b02c2d6ce18fae164df7b604839dd8ef551e Mon Sep 17 00:00:00 2001 From: Husanjonazamov Date: Tue, 17 Mar 2026 19:36:21 +0500 Subject: [PATCH] Baholash maqsadi uchun api chiqarildi --- core/apps/evaluation/choices/reference.py | 1 + .../0020_alter_referenceitemmodel_type.py | 18 ++++++++++++++++++ .../serializers/reference/ReferenceItem.py | 9 +++++++++ .../serializers/request/EvaluationRequest.py | 2 +- core/apps/evaluation/urls.py | 2 ++ core/apps/evaluation/views/reference.py | 16 ++++++++++++++++ 6 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 core/apps/evaluation/migrations/0020_alter_referenceitemmodel_type.py diff --git a/core/apps/evaluation/choices/reference.py b/core/apps/evaluation/choices/reference.py index a538f69..37c6db2 100644 --- a/core/apps/evaluation/choices/reference.py +++ b/core/apps/evaluation/choices/reference.py @@ -10,3 +10,4 @@ class ReferenceType(models.TextChoices): BODY_TYPE = "body_type", _("Body type") CAR_POSITION = "car_position", _("Car position") STATE_CAR = "state_car", _("Car state") + EVALUATION_PURPOSE = "evaluation_purpose", _("Evaluation purpose") diff --git a/core/apps/evaluation/migrations/0020_alter_referenceitemmodel_type.py b/core/apps/evaluation/migrations/0020_alter_referenceitemmodel_type.py new file mode 100644 index 0000000..5574dfb --- /dev/null +++ b/core/apps/evaluation/migrations/0020_alter_referenceitemmodel_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2026-03-17 14:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evaluation', '0019_evaluationrequestmodel_location_name_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='referenceitemmodel', + name='type', + field=models.CharField(choices=[('brand', 'Brand'), ('marka', 'Marka'), ('color', 'Color'), ('fuel_type', 'Fuel type'), ('body_type', 'Body type'), ('car_position', 'Car position'), ('state_car', 'Car state'), ('evaluation_purpose', 'Evaluation purpose')], max_length=50, verbose_name='type'), + ), + ] diff --git a/core/apps/evaluation/serializers/reference/ReferenceItem.py b/core/apps/evaluation/serializers/reference/ReferenceItem.py index 08d5d4c..4571f32 100644 --- a/core/apps/evaluation/serializers/reference/ReferenceItem.py +++ b/core/apps/evaluation/serializers/reference/ReferenceItem.py @@ -46,3 +46,12 @@ class CreateReferenceitemSerializer(BaseReferenceitemSerializer): "order", "is_active", ] + + +class EvaluationPurposeSerializer(serializers.ModelSerializer): + label = serializers.CharField(source="name") + value = serializers.IntegerField(source="id") + + class Meta: + model = ReferenceitemModel + fields = ["label", "value"] diff --git a/core/apps/evaluation/serializers/request/EvaluationRequest.py b/core/apps/evaluation/serializers/request/EvaluationRequest.py index 5499026..93d711c 100644 --- a/core/apps/evaluation/serializers/request/EvaluationRequest.py +++ b/core/apps/evaluation/serializers/request/EvaluationRequest.py @@ -17,7 +17,7 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer): ) location = serializers.SerializerMethodField() - location_name = serializers.CharField(source="location_name", required=False) + location_name = serializers.CharField(required=False) class Meta: model = EvaluationrequestModel diff --git a/core/apps/evaluation/urls.py b/core/apps/evaluation/urls.py index ecdc5c2..7231e9d 100644 --- a/core/apps/evaluation/urls.py +++ b/core/apps/evaluation/urls.py @@ -14,9 +14,11 @@ from .views import ( ValuationDocumentView, ValuationView, VehicleView, + EvaluationPurposeView, ) router = DefaultRouter() +router.register("evaluation-purpose", EvaluationPurposeView, basename="evaluation-purpose") router.register("evaluation-request", EvaluationrequestView, basename="evaluation-request") router.register("reference-item", ReferenceitemView, basename="reference-item") router.register("valuation-document", ValuationDocumentView, basename="valuation-document") diff --git a/core/apps/evaluation/views/reference.py b/core/apps/evaluation/views/reference.py index 9893e32..87c06c2 100644 --- a/core/apps/evaluation/views/reference.py +++ b/core/apps/evaluation/views/reference.py @@ -11,9 +11,25 @@ from core.apps.evaluation.serializers.reference import ( CreateReferenceitemSerializer, ListReferenceitemSerializer, RetrieveReferenceitemSerializer, + EvaluationPurposeSerializer, ) +@extend_schema(tags=["EvaluationPurpose"]) +class EvaluationPurposeView(BaseViewSetMixin, ReadOnlyModelViewSet): + queryset = ReferenceitemModel.objects.filter( + type="evaluation_purpose", is_active=True + ).order_by("order", "name") + serializer_class = EvaluationPurposeSerializer + permission_classes = [AllowAny] + pagination_class = None + + filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter] + search_fields = ["name"] + ordering_fields = ["name", "order"] + ordering = ["order", "name"] + + @extend_schema(tags=["ReferenceItem"]) class ReferenceitemView(BaseViewSetMixin, ReadOnlyModelViewSet): queryset = ReferenceitemModel.objects.select_related("parent").filter(is_active=True)