diff --git a/apps/product/web/api/v1/serializers/product_serializers.py b/apps/product/web/api/v1/serializers/product_serializers.py index 7025fda..0186a55 100644 --- a/apps/product/web/api/v1/serializers/product_serializers.py +++ b/apps/product/web/api/v1/serializers/product_serializers.py @@ -1,8 +1,8 @@ from rest_framework import serializers -from apps.product import models as product_models -from apps.authorization.api.v1 import serializers as authorize_serializers -from apps.authentication.api.v1.serializers.serializer import OrganizationSerializer, OrganizationTypeSerializer + +from apps.authentication.api.v1.serializers.serializer import OrganizationTypeSerializer from apps.product import exceptions +from apps.product import models as product_models class ProductCategorySerializer(serializers.ModelSerializer): # noqa @@ -80,6 +80,7 @@ class AttributeValueSerializer(serializers.ModelSerializer): fields = [ "id", "quota", + "org_quota_stat", "attribute", "value", ] diff --git a/apps/product/web/api/v1/serializers/quota_serializers.py b/apps/product/web/api/v1/serializers/quota_serializers.py index 988537f..52cf74b 100644 --- a/apps/product/web/api/v1/serializers/quota_serializers.py +++ b/apps/product/web/api/v1/serializers/quota_serializers.py @@ -239,6 +239,7 @@ class QuotaBrokerValueSerializer(serializers.ModelSerializer): # noqa fields = [ "id", "quota", + "org_quota_stat", "broker", "value", ] diff --git a/apps/product/web/api/v1/viewsets/quota_api.py b/apps/product/web/api/v1/viewsets/quota_api.py index 0a4f970..1844663 100644 --- a/apps/product/web/api/v1/viewsets/quota_api.py +++ b/apps/product/web/api/v1/viewsets/quota_api.py @@ -197,14 +197,18 @@ class QuotaViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, DynamicS quota.attribute_values.all().delete() for attr in request.data['price_attributes_data']: - # create new relations - attr.update({'quota': quota.id}) - attributes = CustomOperations().custom_create( - request=request, - view=product_api.AttributeValueViewSet(), - data=attr - ) - attributes_value_list.append(attributes) + for stat in quota.org_quota_stats.all(): + # create new relations + attr.update({ + 'quota': quota.id, + 'org_quota_stat': stat.id if stat.stat_type != 'quota' else None + }) + attributes = CustomOperations().custom_create( + request=request, + view=product_api.AttributeValueViewSet(), + data=attr + ) + attributes_value_list.append(attributes) # create product broker values for quota broker_data_list = [] # noqa @@ -214,14 +218,18 @@ class QuotaViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, DynamicS quota.broker_values.all().delete() for broker in request.data['broker_data']: - # create new relations - broker.update({'quota': quota.id}) - broker_value = CustomOperations().custom_create( - request=request, - view=QuotaBrokerValueViewSet(), - data=broker - ) - broker_data_list.append(broker_value) + for stat in quota.org_quota_stats.all(): + # create new relations + broker.update({ + 'quota': quota.id, + 'org_quota_stat': stat.id if stat.stat_type != 'quota' else None + }) + broker_value = CustomOperations().custom_create( + request=request, + view=QuotaBrokerValueViewSet(), + data=broker + ) + broker_data_list.append(broker_value) # create livestock allocations to quota allocations_list = []