feat(auto-evaluation): to'liq CRUD API va 4 bosqichli forma qo'shildi
- 10 ta yangi choice klass qo'shildi: ObjectOwnerType, PropertyRights, FormOwnership, LocationHighways, LocationConvenience, AutoCarType, AutoCarWheel - AutoEvaluationModel ga ~30 ta yangi field qo'shildi (4 bosqich): 1-bosqich: ro'yxatga olish raqami, sanalar, ob'ekt turi 2-bosqich: egasi ma'lumotlari (jismoniy/yuridik), mulk huquqi, egalik shakli 3-bosqich: manzil (viloyat, tuman, shahar, mahalla, ko'cha, uy) 4-bosqich: avtomobil (tex passport, marka, model, raqam, rang, dvigatel) - CreateSerializer ga validatsiya qo'shildi: passport formati (AA 1234567), tex passport formati (AAA 1234567), egasi turiga qarab majburiy fieldlar (jismoniy yoki yuridik) - View ReadOnlyModelViewSet dan ModelViewSet ga o'zgartirildi - Admin 4 bosqichli fieldset bilan yangilandi - Yangi filterlar: object_owner_type, property_rights, form_ownership - VehicleModel fieldlari FK → ReferenceitemModel ga o'tkazildi - Migratsiyalar: 0015, 0016, 0017
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# Generated by Django 5.2.7 on 2026-03-09 12:01
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('evaluation', '0014_alter_quickevaluationmodel_body_type_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='contract_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='contract date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='form_ownership',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='form of ownership'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_inspection_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='object inspection date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_city',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object location city'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_district',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object location district'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_province',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object location province'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_type',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object owner type'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_type',
|
||||
field=models.CharField(blank=True, choices=[('lightweight_auto', 'Lightweight Auto'), ('truck_car', 'Truck Car'), ('special_tech', 'Special Tech')], max_length=50, null=True, verbose_name='object type'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='property_rights',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='property rights'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rate_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='rate date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rate_object_name',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='rate object name'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rate_report_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='rate report date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rate_type',
|
||||
field=models.IntegerField(blank=True, choices=[(1, '1-tur'), (2, '2-tur'), (3, '3-tur'), (4, '4-tur')], null=True, verbose_name='rate type'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rating_goal',
|
||||
field=models.CharField(blank=True, choices=[('sotuv', 'Sotuv'), ('kredit', 'Kredit'), ('sugurta', "Sug'urta"), ('boshqa', 'Boshqa')], max_length=50, null=True, verbose_name='rating goal'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='registration_number',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='registration number'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('yaratildi', 'Yaratildi'), ('baxolovchi_biriktirildi', 'Baholovchi biriktirildi'), ('baxolandi', 'Baholandi'), ('rad_etildi', 'Rad etildi'), ('tasdiqlandi', 'Tasdiqlandi')], default='yaratildi', max_length=50, verbose_name='status'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='tex_passport_gived_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='tech passport given date'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='tex_passport_serie_num',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='tech passport series and number'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='value_determined',
|
||||
field=models.IntegerField(blank=True, choices=[(1, '1-qiymat'), (2, '2-qiymat'), (3, '3-qiymat'), (4, '4-qiymat')], null=True, verbose_name='value determined'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 5.2.7 on 2026-03-09 12:34
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('evaluation', '0015_autoevaluationmodel_contract_date_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='body_type',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_body_types', to='evaluation.referenceitemmodel', verbose_name='body type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='brand',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_brands', to='evaluation.referenceitemmodel', verbose_name='brand'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='color',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_colors', to='evaluation.referenceitemmodel', verbose_name='color'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='fuel_type',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_fuel_types', to='evaluation.referenceitemmodel', verbose_name='fuel type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='model',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_models', to='evaluation.referenceitemmodel', verbose_name='model'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehiclemodel',
|
||||
name='position',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_positions', to='evaluation.referenceitemmodel', verbose_name='position'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,159 @@
|
||||
# Generated by Django 5.2.7 on 2026-03-09 12:54
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('evaluation', '0016_alter_vehiclemodel_body_type_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_brand',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='car brand'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_color',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='car color'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_dvigatel_number',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='engine number'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_model',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='car model'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='car number'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_type',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Xetchbek'), (2, 'Universal')], null=True, verbose_name='car type'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='car_wheel',
|
||||
field=models.IntegerField(blank=True, choices=[(1, '4x4')], null=True, verbose_name='car wheel'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='manufacture_year',
|
||||
field=models.CharField(blank=True, max_length=10, null=True, verbose_name='manufacture year'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_covenience',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Aholi gavjum hudud'), (2, 'Bozor hududi')], null=True, verbose_name='location convenience'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_highways',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Tuman/Shahar markazi'), (2, 'Tuman/shahar markazidan uzoqda')], null=True, verbose_name='location highways'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_home',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='object location home'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_neighborhood',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object location neighborhood'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_location_street',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='object location street'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_individual_person_f_name',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='owner first name'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_individual_person_l_name',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='owner last name'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_individual_person_p_name',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='owner patronymic'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_individual_person_passport_num',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='owner passport number'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_legal_entity',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='legal entity name'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_legal_inn',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='legal entity INN'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='tex_passport_gived_location',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='tech passport given location'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='form_ownership',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Xususiy'), (2, 'Davlat'), (3, 'AJ'), (4, 'MCHJ'), (5, 'Boshqa')], null=True, verbose_name='form of ownership'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_owner_type',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Jismoniy shaxs'), (2, 'Yuridik shaxs')], null=True, verbose_name='object owner type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='object_type',
|
||||
field=models.CharField(blank=True, choices=[('lightweight_auto', 'Yengil automobil'), ('truck_car', 'Yuk automobil'), ('special_tech', 'Maxsus texnika')], max_length=50, null=True, verbose_name='object type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='property_rights',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Doimiy egalik'), (2, 'Doimiy foydalanish'), (3, 'Vaqtinchalik foydalanish'), (4, 'Muddatli ijara'), (5, 'Umrbod meros qilib olish')], null=True, verbose_name='property rights'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rate_type',
|
||||
field=models.IntegerField(blank=True, choices=[(1, "Kredit ta'minoti sifatida garovga qo'yish"), (2, 'Sotish maqsadida bozor qiymatini aniqlash'), (3, 'Soliqqa tortish maqsadida'), (4, 'Boshqa')], null=True, verbose_name='rate type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='rating_goal',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='rating goal'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='valuation',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='auto_detail', to='evaluation.valuationmodel', verbose_name='valuation'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='value_determined',
|
||||
field=models.IntegerField(blank=True, choices=[(1, 'Bozor qiymati'), (2, 'Soliq maqsadlari uchun'), (3, 'Tugatish qiymati'), (4, 'Utilizatsiya qiymati')], null=True, verbose_name='value determined'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='autoevaluationmodel',
|
||||
name='vehicle',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='evaluation', to='evaluation.vehiclemodel', verbose_name='vehicle'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user