diff --git a/core/apps/evaluation/choices/reference.py b/core/apps/evaluation/choices/reference.py index 37c6db2..dd8d7e9 100644 --- a/core/apps/evaluation/choices/reference.py +++ b/core/apps/evaluation/choices/reference.py @@ -11,3 +11,4 @@ class ReferenceType(models.TextChoices): CAR_POSITION = "car_position", _("Car position") STATE_CAR = "state_car", _("Car state") EVALUATION_PURPOSE = "evaluation_purpose", _("Evaluation purpose") + DETERMINED_VALUE = "determined_value", _("Determined value type") diff --git a/core/apps/evaluation/migrations/0021_alter_referenceitemmodel_type.py b/core/apps/evaluation/migrations/0021_alter_referenceitemmodel_type.py new file mode 100644 index 0000000..e065131 --- /dev/null +++ b/core/apps/evaluation/migrations/0021_alter_referenceitemmodel_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2026-03-17 15:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evaluation', '0020_alter_referenceitemmodel_type'), + ] + + 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'), ('determined_value', 'Determined value type')], 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 4571f32..cd6284d 100644 --- a/core/apps/evaluation/serializers/reference/ReferenceItem.py +++ b/core/apps/evaluation/serializers/reference/ReferenceItem.py @@ -55,3 +55,12 @@ class EvaluationPurposeSerializer(serializers.ModelSerializer): class Meta: model = ReferenceitemModel fields = ["label", "value"] + + +class DeterminedValueSerializer(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/urls.py b/core/apps/evaluation/urls.py index 7231e9d..12e6dd8 100644 --- a/core/apps/evaluation/urls.py +++ b/core/apps/evaluation/urls.py @@ -15,9 +15,11 @@ from .views import ( ValuationView, VehicleView, EvaluationPurposeView, + DeterminedValueView, ) router = DefaultRouter() +router.register("determined-value", DeterminedValueView, basename="determined-value") router.register("evaluation-purpose", EvaluationPurposeView, basename="evaluation-purpose") router.register("evaluation-request", EvaluationrequestView, basename="evaluation-request") router.register("reference-item", ReferenceitemView, basename="reference-item") diff --git a/core/apps/evaluation/views/reference.py b/core/apps/evaluation/views/reference.py index 87c06c2..652e6dc 100644 --- a/core/apps/evaluation/views/reference.py +++ b/core/apps/evaluation/views/reference.py @@ -12,6 +12,7 @@ from core.apps.evaluation.serializers.reference import ( ListReferenceitemSerializer, RetrieveReferenceitemSerializer, EvaluationPurposeSerializer, + DeterminedValueSerializer, ) @@ -30,6 +31,21 @@ class EvaluationPurposeView(BaseViewSetMixin, ReadOnlyModelViewSet): ordering = ["order", "name"] +@extend_schema(tags=["DeterminedValue"]) +class DeterminedValueView(BaseViewSetMixin, ReadOnlyModelViewSet): + queryset = ReferenceitemModel.objects.filter( + type="determined_value", is_active=True + ).order_by("order", "name") + serializer_class = DeterminedValueSerializer + 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)