change structure of quota update - recreate fields

This commit is contained in:
2025-07-23 14:38:19 +03:30
parent b7556a52a1
commit 357d6d5cac

View File

@@ -146,17 +146,13 @@ class QuotaViewSet(viewsets.ModelViewSet): # noqa
# create incentive plan # create incentive plan
plans_list = [] plans_list = []
if 'incentive_plan_data' in request.data.keys(): if 'incentive_plan_data' in request.data.keys():
# remove all incentive assignment relations
quota.incentive_assignments.all().delete()
for plan in request.data['incentive_plan_data']: for plan in request.data['incentive_plan_data']:
# create new relations
plan.update({'quota': quota.id}) plan.update({'quota': quota.id})
if 'id' in plan.keys():
incentive_plan = CustomOperations().custom_update(
request=request,
view=QuotaIncentiveAssignmentViewSet(),
data_key='incentive_plan_data',
obj_id=plan['id'],
data=plan
)
else:
incentive_plan = CustomOperations().custom_create( incentive_plan = CustomOperations().custom_create(
request=request, request=request,
view=QuotaIncentiveAssignmentViewSet(), view=QuotaIncentiveAssignmentViewSet(),
@@ -168,35 +164,30 @@ class QuotaViewSet(viewsets.ModelViewSet): # noqa
# create product price attributes for quota # create product price attributes for quota
attributes_value_list = [] # noqa attributes_value_list = [] # noqa
if 'price_attributes_data' in request.data.keys(): if 'price_attributes_data' in request.data.keys():
# remove all price attribute relations
quota.attribute_values.all().delete()
for attr in request.data['price_attributes_data']: for attr in request.data['price_attributes_data']:
# create new relations
attr.update({'quota': quota.id}) attr.update({'quota': quota.id})
if 'id' in attr.keys():
attributes = CustomOperations().custom_update(
request=request,
view=product_api.AttributeValueViewSet(),
obj_id=attr['id'],
data=attr
)
else:
attributes = CustomOperations().custom_create( attributes = CustomOperations().custom_create(
request=request, request=request,
view=product_api.AttributeValueViewSet(), view=product_api.AttributeValueViewSet(),
data=attr data=attr
) )
attributes_value_list.append(attributes) attributes_value_list.append(attributes)
# create product broker values for quota # create product broker values for quota
broker_data_list = [] broker_data_list = [] # noqa
if 'broker_data' in request.data.keys(): if 'broker_data' in request.data.keys():
# remove broker values relations
quota.broker_values.all().delete()
for broker in request.data['broker_data']: for broker in request.data['broker_data']:
# create new relations
broker.update({'quota': quota.id}) broker.update({'quota': quota.id})
if 'id' in broker.keys():
broker_value = CustomOperations().custom_update(
request=request,
view=QuotaBrokerValueViewSet(),
obj_id=broker['id'],
data=broker
)
else:
broker_value = CustomOperations().custom_create( broker_value = CustomOperations().custom_create(
request=request, request=request,
view=QuotaBrokerValueViewSet(), view=QuotaBrokerValueViewSet(),
@@ -207,35 +198,30 @@ class QuotaViewSet(viewsets.ModelViewSet): # noqa
# create livestock allocations to quota # create livestock allocations to quota
allocations_list = [] allocations_list = []
if 'livestock_allocation_data' in request.data.keys(): if 'livestock_allocation_data' in request.data.keys():
# remove livestock allocations data relations
quota.livestock_allocations.all().delete()
for ls_alloc in request.data['livestock_allocation_data']: for ls_alloc in request.data['livestock_allocation_data']:
# create new relations
ls_alloc.update({'quota': quota.id}) ls_alloc.update({'quota': quota.id})
if 'id' in ls_alloc.keys():
allocations = CustomOperations().custom_update(
request=request,
view=QuotaLiveStockAllocationViewSet(),
obj_id=ls_alloc['id'],
data=ls_alloc
)
else:
allocations = CustomOperations().custom_create( allocations = CustomOperations().custom_create(
request=request, request=request,
view=QuotaLiveStockAllocationViewSet(), view=QuotaLiveStockAllocationViewSet(),
data=ls_alloc data=ls_alloc
) )
allocations_list.append(allocations) allocations_list.append(allocations)
# create livestock age limits for quota # create livestock age limits for quota
livestock_age_limits = [] livestock_age_limits = []
if 'livestock_age_limitations' in request.data.keys(): if 'livestock_age_limitations' in request.data.keys():
# remove live stock age limit relations
quota.livestock_age_limitations.all().delete()
for age_limit in request.data['livestock_age_limitations']: for age_limit in request.data['livestock_age_limitations']:
# create new relations
age_limit.update({'quota': quota.id}) age_limit.update({'quota': quota.id})
if 'id' in age_limit.keys():
age_limit_creation_object = CustomOperations().custom_update(
request=request,
view=QuotaLiveStockAgeLimitation(),
obj_id=age_limit['id'],
data=age_limit
)
else:
age_limit_creation_object = CustomOperations().custom_create( age_limit_creation_object = CustomOperations().custom_create(
request=request, request=request,
view=QuotaLiveStockAgeLimitation(), view=QuotaLiveStockAgeLimitation(),