From 3d7e9c0b1411b9781ba0f74bf86799822be6241d Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Tue, 29 Jul 2025 11:41:34 +0330 Subject: [PATCH] change my distributions to assigner & assigned by param --- .../api/v1/viewsets/quota_distribution_api.py | 26 +++++++++++++------ apps/warehouse/web/api/v1/serializers.py | 3 +++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/apps/product/web/api/v1/viewsets/quota_distribution_api.py b/apps/product/web/api/v1/viewsets/quota_distribution_api.py index 4aa4fa6..3a13441 100644 --- a/apps/product/web/api/v1/viewsets/quota_distribution_api.py +++ b/apps/product/web/api/v1/viewsets/quota_distribution_api.py @@ -81,16 +81,26 @@ class QuotaDistributionViewSet(viewsets.ModelViewSet): ) def my_distributions(self, request): """ list of my distributions """ + query = self.request.query_params organization = get_organization_by_user(request.user) - # paginate queryset - page = self.paginate_queryset( - self.queryset.filter( - Q(assigned_organization=organization) - ).order_by('-modify_date') - ) - if page is not None: - serializer = self.get_serializer(page, many=True) + if query.get('param') == 'assigned': + # paginate queryset + page = self.paginate_queryset( + self.queryset.filter( + Q(assigned_organization=organization) + ).order_by('-modify_date') + ) + elif query.get('param') == 'assigner': + # paginate queryset + page = self.paginate_queryset( + self.queryset.filter( + Q(assigner_organization=organization) + ).order_by('-modify_date') + ) + + if page is not None: # noqa + serializer = self.get_serializer(page, many=True) # noqa return self.get_paginated_response(serializer.data) @action( diff --git a/apps/warehouse/web/api/v1/serializers.py b/apps/warehouse/web/api/v1/serializers.py index 9dcbe38..d8a0dde 100644 --- a/apps/warehouse/web/api/v1/serializers.py +++ b/apps/warehouse/web/api/v1/serializers.py @@ -47,10 +47,13 @@ class InventoryEntrySerializer(serializers.ModelSerializer): return attrs def to_representation(self, instance): + """ custom output of inventory entry serializer """ + representation = super().to_representation(instance) if instance.document: representation['document'] = instance.document if instance.distribution: + # distribution data representation['distribution'] = { 'distribution': instance.distribution.distribution_id, 'sale_unit': instance.distribution.quota.sale_unit.unit,