add new fields to request-evalution api
This commit is contained in:
@@ -4,8 +4,11 @@ from django.contrib.auth import get_user_model
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from core.apps.evaluation.models import EvaluationrequestModel, ReferenceitemModel
|
||||
from core.apps.evaluation.models import EvaluationrequestModel, ReferenceitemModel, EvaluationRequestOwnerModel, EvaluationRequestCustomerModel
|
||||
from core.apps.evaluation.serializers.reference import ListReferenceitemSerializer
|
||||
from core.apps.evaluation.serializers.request.owner import EvaluationRequestOwnerSerializer
|
||||
from core.apps.evaluation.serializers.request.customer import EvaluationRequestCustomerSerializer
|
||||
|
||||
|
||||
|
||||
User = get_user_model()
|
||||
@@ -29,6 +32,8 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
property_rights = ListReferenceitemSerializer(read_only=True)
|
||||
form_ownership = ListReferenceitemSerializer(read_only=True)
|
||||
user = serializers.SerializerMethodField(method_name="get_user")
|
||||
customer = EvaluationRequestCustomerSerializer(read_only=True)
|
||||
owner = EvaluationRequestOwnerSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = EvaluationrequestModel
|
||||
@@ -56,6 +61,8 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"is_archive",
|
||||
"customer",
|
||||
"owner",
|
||||
]
|
||||
|
||||
def get_location(self, obj):
|
||||
@@ -113,6 +120,8 @@ class CreateEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
rate_goal = serializers.PrimaryKeyRelatedField(required=False, queryset=ReferenceitemModel.objects.all())
|
||||
property_rights = serializers.PrimaryKeyRelatedField(required=False, queryset=ReferenceitemModel.objects.all())
|
||||
form_ownership = serializers.PrimaryKeyRelatedField(required=False, queryset=ReferenceitemModel.objects.all())
|
||||
customer = EvaluationRequestCustomerSerializer()
|
||||
owner = EvaluationRequestOwnerSerializer()
|
||||
|
||||
class Meta:
|
||||
model = EvaluationrequestModel
|
||||
@@ -131,6 +140,11 @@ class CreateEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
"need_delivering",
|
||||
"location",
|
||||
"locationName",
|
||||
"customer",
|
||||
"owner",
|
||||
"customer_and_owner_same",
|
||||
"distance_covered",
|
||||
"gov_number"
|
||||
]
|
||||
|
||||
def validate_tex_passport(self, value):
|
||||
@@ -179,8 +193,32 @@ class CreateEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
if location_name:
|
||||
validated_data["location_name"] = str(location_name)
|
||||
validated_data["user"] = self.context["request"].user
|
||||
return super().create(validated_data)
|
||||
|
||||
instance = super().create(validated_data)
|
||||
|
||||
customer = validated_data.pop("customer", None)
|
||||
owner = validated_data.pop("owner", None)
|
||||
EvaluationRequestCustomerModel.objects.create(
|
||||
evaluation_request=instance,
|
||||
type=customer.get("type"),
|
||||
jshshir=customer.get("jshshir")
|
||||
)
|
||||
if not instance.customer_and_owner_same:
|
||||
EvaluationRequestOwnerModel.objects.create(
|
||||
evaluation_request=instance,
|
||||
type=owner.get("type"),
|
||||
jshshir=owner.get("jshshir")
|
||||
)
|
||||
else:
|
||||
EvaluationRequestOwnerModel.objects.create(
|
||||
evaluation_request=instance,
|
||||
type=customer.get("type"),
|
||||
jshshir=customer.get("jshshir")
|
||||
)
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
class ArchiveEvaluationrequestSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField(required=True)
|
||||
is_archive = serializers.BooleanField(required=True)
|
||||
is_archive = serializers.BooleanField(required=True)
|
||||
|
||||
Reference in New Issue
Block a user