From f13f1eb16f3fdc29140c4b052be4faa12a258d43 Mon Sep 17 00:00:00 2001 From: Husanjonazamov Date: Wed, 18 Mar 2026 14:10:49 +0500 Subject: [PATCH] Mulk shakli uchun api kerak va Mulk egalik huquqi uchun api kerak olish uchun api chiqarildi --- core/apps/evaluation/choices/reference.py | 2 ++ .../0022_alter_referenceitemmodel_type.py | 18 +++++++++++ .../serializers/reference/ReferenceItem.py | 9 ++++++ core/apps/evaluation/urls.py | 4 +++ core/apps/evaluation/views/reference.py | 31 +++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 core/apps/evaluation/migrations/0022_alter_referenceitemmodel_type.py diff --git a/core/apps/evaluation/choices/reference.py b/core/apps/evaluation/choices/reference.py index dd8d7e9..33d4275 100644 --- a/core/apps/evaluation/choices/reference.py +++ b/core/apps/evaluation/choices/reference.py @@ -12,3 +12,5 @@ class ReferenceType(models.TextChoices): STATE_CAR = "state_car", _("Car state") EVALUATION_PURPOSE = "evaluation_purpose", _("Evaluation purpose") DETERMINED_VALUE = "determined_value", _("Determined value type") + PROPERTY_RIGHTS = "property_rights", _("Property rights") + OWNERSHIP_FORM = "ownership_form", _("Ownership form") diff --git a/core/apps/evaluation/migrations/0022_alter_referenceitemmodel_type.py b/core/apps/evaluation/migrations/0022_alter_referenceitemmodel_type.py new file mode 100644 index 0000000..13209fe --- /dev/null +++ b/core/apps/evaluation/migrations/0022_alter_referenceitemmodel_type.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2026-03-18 08:20 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evaluation', '0021_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'), ('property_rights', 'Property rights'), ('ownership_form', 'Ownership form')], 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 cd6284d..7a01d47 100644 --- a/core/apps/evaluation/serializers/reference/ReferenceItem.py +++ b/core/apps/evaluation/serializers/reference/ReferenceItem.py @@ -64,3 +64,12 @@ class DeterminedValueSerializer(serializers.ModelSerializer): class Meta: model = ReferenceitemModel fields = ["label", "value"] + + +class LabelValueSerializer(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 12e6dd8..be8b883 100644 --- a/core/apps/evaluation/urls.py +++ b/core/apps/evaluation/urls.py @@ -16,11 +16,15 @@ from .views import ( VehicleView, EvaluationPurposeView, DeterminedValueView, + PropertyRightsView, + OwnershipFormView, ) router = DefaultRouter() router.register("determined-value", DeterminedValueView, basename="determined-value") router.register("evaluation-purpose", EvaluationPurposeView, basename="evaluation-purpose") +router.register("property-rights", PropertyRightsView, basename="property-rights") +router.register("ownership-form", OwnershipFormView, basename="ownership-form") 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 652e6dc..6f6bbd8 100644 --- a/core/apps/evaluation/views/reference.py +++ b/core/apps/evaluation/views/reference.py @@ -13,6 +13,7 @@ from core.apps.evaluation.serializers.reference import ( RetrieveReferenceitemSerializer, EvaluationPurposeSerializer, DeterminedValueSerializer, + LabelValueSerializer, ) @@ -46,6 +47,36 @@ class DeterminedValueView(BaseViewSetMixin, ReadOnlyModelViewSet): ordering = ["order", "name"] +@extend_schema(tags=["PropertyRights"]) +class PropertyRightsView(BaseViewSetMixin, ReadOnlyModelViewSet): + queryset = ReferenceitemModel.objects.filter( + type="property_rights", is_active=True + ).order_by("order", "name") + serializer_class = LabelValueSerializer + permission_classes = [AllowAny] + pagination_class = None + + filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter] + search_fields = ["name"] + ordering_fields = ["name", "order"] + ordering = ["order", "name"] + + +@extend_schema(tags=["OwnershipForm"]) +class OwnershipFormView(BaseViewSetMixin, ReadOnlyModelViewSet): + queryset = ReferenceitemModel.objects.filter( + type="ownership_form", is_active=True + ).order_by("order", "name") + serializer_class = LabelValueSerializer + 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) -- 2.49.1