From 99b8104f9de20771978b9f4edc54e640975c68b6 Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Mon, 10 Nov 2025 12:48:53 +0330 Subject: [PATCH] transaction serializer --- apps/core/api.py | 1 - apps/core/visibility_registry.py | 2 +- apps/warehouse/web/api/v1/api.py | 11 +++++++++-- apps/warehouse/web/api/v1/serializers.py | 11 +++++++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/apps/core/api.py b/apps/core/api.py index ea1d870..f780ebb 100644 --- a/apps/core/api.py +++ b/apps/core/api.py @@ -27,7 +27,6 @@ class BaseViewSet(RegionFilterMixin, viewsets.ModelViewSet): if visibility_by_org_scope: """ if organization has free visibility by scope, apply visibility filter """ queryset = apply_visibility_filter(queryset, org) - print("ssssssssssssss") return queryset if user_relation.exists(): diff --git a/apps/core/visibility_registry.py b/apps/core/visibility_registry.py index 50835ae..2119e8f 100644 --- a/apps/core/visibility_registry.py +++ b/apps/core/visibility_registry.py @@ -6,7 +6,7 @@ VISIBILITY_MAP = { 'productstats': 'organization', 'quotadistribution': ['assigner_organization', 'assigned_organization'], 'inventoryentry': 'organization', - 'inventoryquotasaletransaction': 'organization', + 'inventoryquotasaletransaction': 'seller_organization', 'device': 'organization', # 'deviceactivationcode': 'organization', diff --git a/apps/warehouse/web/api/v1/api.py b/apps/warehouse/web/api/v1/api.py index 301ee2d..de89046 100644 --- a/apps/warehouse/web/api/v1/api.py +++ b/apps/warehouse/web/api/v1/api.py @@ -128,7 +128,7 @@ class InventoryEntryViewSet(BaseViewSet, SoftDeleteMixin, viewsets.ModelViewSet, return self.get_paginated_response(serializer.data) -class InventoryQuotaSaleTransactionViewSet(SoftDeleteMixin, DynamicSearchMixin, BaseViewSet, viewsets.ModelViewSet): +class InventoryQuotaSaleTransactionViewSet(BaseViewSet, SoftDeleteMixin, DynamicSearchMixin, viewsets.ModelViewSet): queryset = warehouse_models.InventoryQuotaSaleTransaction.objects.all() serializer_class = warehouse_serializers.InventoryQuotaSaleTransactionSerializer filter_backends = [filters.SearchFilter] @@ -147,7 +147,14 @@ class InventoryQuotaSaleTransactionViewSet(SoftDeleteMixin, DynamicSearchMixin, list of transactions filter by: search, all, my_transactions """ - queryset = self.filter_query(self.get_queryset()) + print("ssss") + queryset = self.filter_query(self.get_queryset(visibility_by_org_scope=True)) + + # paginate & response + page = self.paginate_queryset(queryset) + if page is not None: # noqa + serializer = self.get_serializer(page, many=True) + return self.get_paginated_response(serializer.data) class InventoryQuotaSaleItemViewSet(SoftDeleteMixin, BaseViewSet, viewsets.ModelViewSet): diff --git a/apps/warehouse/web/api/v1/serializers.py b/apps/warehouse/web/api/v1/serializers.py index 681c1f8..2c7c859 100644 --- a/apps/warehouse/web/api/v1/serializers.py +++ b/apps/warehouse/web/api/v1/serializers.py @@ -95,6 +95,17 @@ class InventoryQuotaSaleTransactionSerializer(serializers.ModelSerializer): return attrs + def to_representation(self, instance): + """ custom output of inventory sale transaction serializer """ + + representation = super().to_representation(instance) + representation['items'] = InventoryQuotaSaleItemSerializer( + instance.items.all(), + many=True + ).data + + return representation + class InventoryQuotaSaleItemSerializer(serializers.ModelSerializer): class Meta: