From de9eb0bfdf1aa2d0c00464b61036a14fa5a8ded0 Mon Sep 17 00:00:00 2001 From: Mojtaba-z Date: Sun, 16 Nov 2025 16:23:53 +0330 Subject: [PATCH] filter transaction by status [success/failed/waiting] --- apps/warehouse/web/api/v1/api.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/apps/warehouse/web/api/v1/api.py b/apps/warehouse/web/api/v1/api.py index 721da69..4d734f7 100644 --- a/apps/warehouse/web/api/v1/api.py +++ b/apps/warehouse/web/api/v1/api.py @@ -145,8 +145,36 @@ class InventoryQuotaSaleTransactionViewSet(BaseViewSet, SoftDeleteMixin, Dynamic """ list of transactions filter by: search, all, my_transactions + filter by: transaction status """ - queryset = self.filter_query(self.get_queryset(visibility_by_org_scope=True).order_by('-create_date')) + if 'status' in request.GET.keys(): + status_param = self.request.query_params.get('status') # noqa + + if status_param == 'waiting': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='waiting').order_by('-create_date') + + elif status_param == 'success': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='success').order_by('-create_date') + + elif status_param == 'failed': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='failed').order_by('-create_date') + + else: + queryset = self.get_queryset( + visibility_by_org_scope=True + ).order_by('-create_date') + else: + queryset = self.get_queryset( + visibility_by_org_scope=True + ).order_by('-create_date') + + queryset = self.filter_query(queryset) # paginate & response page = self.paginate_queryset(queryset)