This commit is contained in:
xoliqberdiyev
2026-04-18 16:31:53 +05:00
parent 75365f8e7e
commit 965328edd4
4 changed files with 50 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.2.7 on 2026-04-18 11:28
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('evaluation', '0028_autoevaluationmodel_appraisers'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='autoevaluationmodel',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='auto_evaluations_user', to=settings.AUTH_USER_MODEL, verbose_name='user'),
),
]

View File

@@ -22,6 +22,14 @@ from .vehicle import VehicleModel
class AutoEvaluationModel(AbstractBaseModel): class AutoEvaluationModel(AbstractBaseModel):
user = models.ForeignKey(
"accounts.User",
on_delete=models.SET_NULL,
related_name="auto_evaluations_user",
verbose_name=_("user"),
null=True,
blank=True,
)
valuation = models.OneToOneField( valuation = models.OneToOneField(
ValuationModel, ValuationModel,
on_delete=models.CASCADE, on_delete=models.CASCADE,

View File

@@ -16,6 +16,7 @@ class BaseAutoevaluationSerializer(serializers.ModelSerializer):
value_determined = ListReferenceitemSerializer(read_only=True) value_determined = ListReferenceitemSerializer(read_only=True)
property_rights = ListReferenceitemSerializer(read_only=True) property_rights = ListReferenceitemSerializer(read_only=True)
form_ownership = ListReferenceitemSerializer(read_only=True) form_ownership = ListReferenceitemSerializer(read_only=True)
user = serializers.SerializerMethodField(method_name="get_user", read_only=True)
class Meta: class Meta:
model = AutoEvaluationModel model = AutoEvaluationModel
@@ -48,8 +49,19 @@ class BaseAutoevaluationSerializer(serializers.ModelSerializer):
"rate_type", "rate_type",
"property_rights", "property_rights",
"form_ownership", "form_ownership",
"user",
] ]
def get_user(self, obj):
request = self.context.get('request')
return {
"id": obj.user.id,
"phone": obj.user.phone,
"first_name": obj.user.first_name,
"last_name": obj.user.last_name,
"avatar": request.build_absolute_uri(obj.user.avatar.url) if obj.user.avatar else None
}
class ListAutoevaluationSerializer(BaseAutoevaluationSerializer): class ListAutoevaluationSerializer(BaseAutoevaluationSerializer):
class Meta(BaseAutoevaluationSerializer.Meta): class Meta(BaseAutoevaluationSerializer.Meta):
@@ -317,7 +329,6 @@ class CreateAutoevaluationSerializer(serializers.ModelSerializer):
def validate(self, attrs): def validate(self, attrs):
owner_type = attrs.get("object_owner_type") owner_type = attrs.get("object_owner_type")
if owner_type == 1: if owner_type == 1:
required_fields = { required_fields = {
"object_owner_individual_person_f_name": "Ismi", "object_owner_individual_person_f_name": "Ismi",
@@ -343,10 +354,15 @@ class CreateAutoevaluationSerializer(serializers.ModelSerializer):
return attrs return attrs
def create(self, validated_data):
user = self.context.get('request').user
validated_data['user'] = user
return super().create(validated_data)
class AutoEvaluationAppraisersSerializer(serializers.Serializer): class AutoEvaluationAppraisersSerializer(serializers.Serializer):
ids = serializers.ListField(child=serializers.IntegerField()) ids = serializers.ListField(child=serializers.IntegerField())
def validate(self, data): def validate(self, data):
if not data.get("ids"): if not data.get("ids"):
raise serializers.ValidationError("Appraisers IDs are required.") raise serializers.ValidationError("Appraisers IDs are required.")

View File

@@ -80,6 +80,9 @@ class AutoEvaluationView(BaseViewSetMixin, ModelViewSet):
"partial_update": UpdateAutoevaluationSerializer, "partial_update": UpdateAutoevaluationSerializer,
} }
def serializer_context(self):
return self.serializer_class(context={'request': self.request})
@extend_schema(tags=["AutoEvaluation"]) @extend_schema(tags=["AutoEvaluation"])
class AutoEvaluationSetAppraisersView(GenericAPIView): class AutoEvaluationSetAppraisersView(GenericAPIView):