refactor update method to use dynamic field assignment in quota serializer

This commit is contained in:
2025-10-21 15:35:54 +03:30
parent 5379f43af4
commit 8355d4af57

View File

@@ -83,27 +83,33 @@ class QuotaSerializer(serializers.ModelSerializer):
def update(self, instance, validated_data):
""" Custom Update """
instance.quota_id = validated_data.get('quota_id', instance.quota_id)
instance.quota_code = validated_data.get('quota_code', instance.quota_code)
instance.quota_weight = validated_data.get('quota_weight', instance.quota_weight)
instance.remaining_weight = validated_data.get('remaining_weight', instance.remaining_weight)
instance.quota_distributed = validated_data.get('quota_distributed', instance.quota_distributed)
instance.product = validated_data.get('product', instance.product)
instance.sale_type = validated_data.get('sale_type', instance.sale_type)
instance.sale_unit = validated_data.get('sale_unit', instance.sale_type)
instance.month_choices = validated_data.get('month_choices', instance.month_choices)
instance.sale_license = validated_data.get('sale_license', instance.sale_license)
instance.group = validated_data.get('group', instance.group)
instance.has_distribution_limit = validated_data.get('has_distribution_limit', instance.has_distribution_limit)
instance.distribution_mode = validated_data.get('distribution_mode', instance.distribution_mode)
instance.has_organization_limit = validated_data.get('has_organization_limit', instance.has_organization_limit)
instance.base_price_factory = validated_data.get('base_price_factory', instance.base_price_factory)
instance.base_price_cooperative = validated_data.get('base_price_cooperative', instance.base_price_cooperative)
instance.final_price = validated_data.get('final_price', instance.final_price)
instance.is_closed = validated_data.get('is_closed', instance.is_closed)
instance.closed_at = validated_data.get('closed_at', instance.closed_at)
instance.limit_by_herd_size = validated_data.get('limit_by_herd_size', instance.limit_by_herd_size)
instance.pos_sale_type = validated_data.get('pos_sale_type', instance.pos_sale_type)
fields = [
"quota_id",
"quota_code",
"quota_weight",
"remaining_weight",
"quota_distributed",
"product",
"sale_type",
"sale_unit",
"month_choices",
"sale_license",
"group",
"has_distribution_limit",
"distribution_mode",
"has_organization_limit",
"base_price_factory",
"base_price_cooperative",
"final_price",
"is_closed",
"closed_at",
"limit_by_herd_size",
"pos_sale_type",
]
for field in fields:
setattr(instance, field, validated_data.get(field, getattr(instance, field)))
instance.save()
# update assigned organization many to many