From ee4754b23d3d6f8701e24efb22546e6fe67aed5c Mon Sep 17 00:00:00 2001 From: xoliqberdiyev Date: Thu, 2 Apr 2026 18:28:21 +0500 Subject: [PATCH] feat: change AutoEvaluation model field and serializer fields --- core/apps/evaluation/choices/auto.py | 22 -------- ...evaluationmodel_form_ownership_and_more.py | 34 ++++++++++++ core/apps/evaluation/models/auto.py | 34 +++++++----- .../serializers/auto/AutoEvaluation.py | 52 ++++++++++++++----- 4 files changed, 93 insertions(+), 49 deletions(-) create mode 100644 core/apps/evaluation/migrations/0026_alter_autoevaluationmodel_form_ownership_and_more.py diff --git a/core/apps/evaluation/choices/auto.py b/core/apps/evaluation/choices/auto.py index 33b7bc7..b9af220 100644 --- a/core/apps/evaluation/choices/auto.py +++ b/core/apps/evaluation/choices/auto.py @@ -21,28 +21,6 @@ class ObjectOwnerType(models.IntegerChoices): LEGAL = 2, _("Yuridik shaxs") -class PropertyRights(models.IntegerChoices): - PERMANENT_OWNERSHIP = 1, _("Doimiy egalik") - PERMANENT_USE = 2, _("Doimiy foydalanish") - TEMPORARY_USE = 3, _("Vaqtinchalik foydalanish") - TERM_LEASE = 4, _("Muddatli ijara") - LIFETIME_INHERITANCE = 5, _("Umrbod meros qilib olish") - - -class FormOwnership(models.IntegerChoices): - PRIVATE = 1, _("Xususiy") - STATE = 2, _("Davlat") - JSC = 3, _("AJ") - LLC = 4, _("MCHJ") - OTHER = 5, _("Boshqa") - - -class ValueDetermined(models.IntegerChoices): - MARKET_VALUE = 1, _("Bozor qiymati") - TAX_PURPOSE = 2, _("Soliq maqsadlari uchun") - LIQUIDATION_VALUE = 3, _("Tugatish qiymati") - UTILIZATION_VALUE = 4, _("Utilizatsiya qiymati") - class RateType(models.IntegerChoices): CREDIT_COLLATERAL = 1, _("Kredit ta'minoti sifatida garovga qo'yish") diff --git a/core/apps/evaluation/migrations/0026_alter_autoevaluationmodel_form_ownership_and_more.py b/core/apps/evaluation/migrations/0026_alter_autoevaluationmodel_form_ownership_and_more.py new file mode 100644 index 0000000..84ca448 --- /dev/null +++ b/core/apps/evaluation/migrations/0026_alter_autoevaluationmodel_form_ownership_and_more.py @@ -0,0 +1,34 @@ +# Generated by Django 5.2.7 on 2026-04-02 13:24 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('evaluation', '0025_alter_evaluationrequestmodel_form_ownership_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='autoevaluationmodel', + name='form_ownership', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='evaluation_auto_form_ownership', to='evaluation.referenceitemmodel', verbose_name='form of ownership'), + ), + migrations.AlterField( + model_name='autoevaluationmodel', + name='property_rights', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='evaluation_auto_property_rights', to='evaluation.referenceitemmodel', verbose_name='property rights'), + ), + migrations.AlterField( + model_name='autoevaluationmodel', + name='rate_type', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='evaluation_auto_rate_type', to='evaluation.referenceitemmodel', verbose_name='rate type'), + ), + migrations.AlterField( + model_name='autoevaluationmodel', + name='value_determined', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='evaluation_auto_value_determined', to='evaluation.referenceitemmodel', verbose_name='value determined'), + ), + ] diff --git a/core/apps/evaluation/models/auto.py b/core/apps/evaluation/models/auto.py index 206b027..d3c85b0 100644 --- a/core/apps/evaluation/models/auto.py +++ b/core/apps/evaluation/models/auto.py @@ -8,13 +8,13 @@ from core.apps.evaluation.choices.auto import ( AutoCarWheel, AutoEvaluationStatus, AutoObjectType, - FormOwnership, + # FormOwnership, LocationConvenience, LocationHighways, ObjectOwnerType, - PropertyRights, - RateType, - ValueDetermined, + # PropertyRights, + # RateType, + # ValueDetermined, ) from .valuation import ValuationModel @@ -123,29 +123,38 @@ class AutoEvaluationModel(AbstractBaseModel): blank=True, null=True, ) - property_rights = models.IntegerField( + + property_rights = models.ForeignKey( + 'evaluation.ReferenceitemModel', verbose_name=_("property rights"), - choices=PropertyRights.choices, blank=True, null=True, + on_delete=models.SET_NULL, + related_name='evaluation_auto_property_rights' ) - form_ownership = models.IntegerField( + form_ownership = models.ForeignKey( + 'evaluation.ReferenceitemModel', verbose_name=_("form of ownership"), - choices=FormOwnership.choices, blank=True, null=True, + on_delete=models.SET_NULL, + related_name='evaluation_auto_form_ownership' ) - value_determined = models.IntegerField( + value_determined = models.ForeignKey( + 'evaluation.ReferenceitemModel', verbose_name=_("value determined"), - choices=ValueDetermined.choices, blank=True, null=True, + on_delete=models.SET_NULL, + related_name='evaluation_auto_value_determined' ) - rate_type = models.IntegerField( + rate_type = models.ForeignKey( + 'evaluation.ReferenceitemModel', verbose_name=_("rate type"), - choices=RateType.choices, blank=True, null=True, + on_delete=models.SET_NULL, + related_name='evaluation_auto_rate_type' ) # ── Step 3 — Manzil ma'lumotlari ──────────────────────────────── @@ -290,4 +299,3 @@ class AutoEvaluationModel(AbstractBaseModel): db_table = "AutoEvaluation" verbose_name = _("Auto Evaluation") verbose_name_plural = _("Auto Evaluations") - diff --git a/core/apps/evaluation/serializers/auto/AutoEvaluation.py b/core/apps/evaluation/serializers/auto/AutoEvaluation.py index 49d83ce..f406575 100644 --- a/core/apps/evaluation/serializers/auto/AutoEvaluation.py +++ b/core/apps/evaluation/serializers/auto/AutoEvaluation.py @@ -2,18 +2,19 @@ import re from rest_framework import serializers -from core.apps.evaluation.models import AutoEvaluationModel +from core.apps.evaluation.models import AutoEvaluationModel,ReferenceitemModel +from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer class BaseAutoevaluationSerializer(serializers.ModelSerializer): status_display = serializers.CharField(source="get_status_display", read_only=True) object_type_display = serializers.CharField(source="get_object_type_display", read_only=True, default=None) - rate_type_display = serializers.CharField(source="get_rate_type_display", read_only=True, default=None) - value_determined_display = serializers.CharField(source="get_value_determined_display", read_only=True, default=None) object_owner_type_display = serializers.CharField(source="get_object_owner_type_display", read_only=True, default=None) - property_rights_display = serializers.CharField(source="get_property_rights_display", read_only=True, default=None) - form_ownership_display = serializers.CharField(source="get_form_ownership_display", read_only=True, default=None) - + rate_type = ListReferenceitemSerializer(read_only=True) + value_determined = ListReferenceitemSerializer(read_only=True) + property_rights = ListReferenceitemSerializer(read_only=True) + form_ownership = ListReferenceitemSerializer(read_only=True) + class Meta: model = AutoEvaluationModel fields = [ @@ -26,13 +27,13 @@ class BaseAutoevaluationSerializer(serializers.ModelSerializer): "car_number", "manufacture_year", "car_color", - "rate_type", - "rate_type_display", - "value_determined", - "value_determined_display", "status", "status_display", "created_at", + "value_determined", + "rate_type", + "property_rights", + "form_ownership", ] @@ -68,10 +69,6 @@ class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer): "object_owner_individual_person_passport_num", "object_owner_legal_entity", "object_owner_legal_inn", - "property_rights", - "property_rights_display", - "form_ownership", - "form_ownership_display", # Step 3 "object_location_province", "object_location_district", @@ -101,6 +98,33 @@ class RetrieveAutoevaluationSerializer(BaseAutoevaluationSerializer): class CreateAutoevaluationSerializer(serializers.ModelSerializer): + property_rights = serializers.PrimaryKeyRelatedField( + queryset=ReferenceitemModel.objects.all(), + required=False, + allow_null=True, + ) + value_determined = serializers.PrimaryKeyRelatedField( + queryset=ReferenceitemModel.objects.all(), + required=False, + allow_null=True, + ) + form_ownership = serializers.PrimaryKeyRelatedField( + queryset=ReferenceitemModel.objects.all(), + required=False, + allow_null=True, + ) + value_determined = serializers.PrimaryKeyRelatedField( + queryset=ReferenceitemModel.objects.all(), + required=False, + allow_null=True, + ) + rate_type = serializers.PrimaryKeyRelatedField( + queryset=ReferenceitemModel.objects.all(), + required=False, + allow_null=True, + ) + + class Meta: model = AutoEvaluationModel fields = [