From 9968447a80d01db9a0949ff827d3f2e66a8702ff Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Sun, 15 Jun 2025 12:19:21 +0330 Subject: [PATCH] add city & province name to user serializer --- .../api/v1/serializers/serializer.py | 7 ++++-- .../web/api/v1/quota_distribution_api.py | 22 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/apps/authentication/api/v1/serializers/serializer.py b/apps/authentication/api/v1/serializers/serializer.py index 21555d5..64981b2 100644 --- a/apps/authentication/api/v1/serializers/serializer.py +++ b/apps/authentication/api/v1/serializers/serializer.py @@ -94,6 +94,11 @@ class UserSerializer(serializers.ModelSerializer): 'otp_status', 'is_herd_owner', ] + extra_kwargs = { + 'password': { + 'required': False + } + } def to_representation(self, instance): """ Custom output """ @@ -105,10 +110,8 @@ class UserSerializer(serializers.ModelSerializer): ).data if instance.city: - representation['city_id'] = instance.city.id representation['city_name'] = instance.city.name if instance.province: - representation['province_id'] = instance.province.id representation['province_name'] = instance.province.name return representation diff --git a/apps/product/web/api/v1/quota_distribution_api.py b/apps/product/web/api/v1/quota_distribution_api.py index ec01353..a22e307 100644 --- a/apps/product/web/api/v1/quota_distribution_api.py +++ b/apps/product/web/api/v1/quota_distribution_api.py @@ -25,12 +25,30 @@ def delete(queryset, pk): class QuotaDistributionViewSet(viewsets.ModelViewSet): + """ quota distribution apis """ + queryset = product_models.QuotaDistribution.objects.all() serializer_class = distribution_serializers.QuotaDistributionSerializer @transaction.atomic def create(self, request, *args, **kwargs): - pass + """ create distribution for organizations users """ + + # get distributed assigner user + try: + assigner_user = product_models.UserRelations.objects.filter( + user=request.user + ).first() + except APIException as e: + raise APIException("unauthorized", code=status.HTTP_401_UNAUTHORIZED) + + request.data.update({'assigner_organization': assigner_user.id}) + + serializer = self.serializer_class(data=request.data) + if serializer.is_valid(raise_exception=True): + serializer.save() + return Response(serializer.data, status=status.HTTP_201_CREATED) + return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN) @action( methods=['put'], @@ -62,5 +80,3 @@ class QuotaDistributionViewSet(viewsets.ModelViewSet): return Response(status=status.HTTP_200_OK) except APIException as e: return Response(e, status=status.HTTP_204_NO_CONTENT) - -