From d389aa2f7a061dd0babd910a550685be0aad97e8 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 27 Dec 2024 23:18:40 +0000 Subject: [PATCH] Enhance status filter for orders --- src/backend/InvenTree/order/api.py | 10 ++++++++-- src/backend/InvenTree/stock/api.py | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index e9111f3284..fc4bb4763c 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -82,8 +82,14 @@ class OrderFilter(rest_filters.FilterSet): status = rest_filters.NumberFilter(label=_('Order Status'), method='filter_status') def filter_status(self, queryset, name, value): - """Filter by integer status code.""" - return queryset.filter(status=value) + """Filter by integer status code. + + Note: Also account for the possibility of a custom status code. + """ + q1 = Q(status=value, status_custom_key__isnull=True) + q2 = Q(status_custom_key=value) + + return queryset.filter(q1 | q2).distinct() # Exact match for reference reference = rest_filters.CharFilter( diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index d968bec97c..9e0d23b560 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -571,7 +571,10 @@ class StockFilter(rest_filters.FilterSet): status = rest_filters.NumberFilter(label=_('Status Code'), method='filter_status') def filter_status(self, queryset, name, value): - """Filter by integer status code.""" + """Filter by integer status code. + + Note: Also account for the possibility of a custom status code. + """ q1 = Q(status=value, status_custom_key__isnull=True) q2 = Q(status_custom_key=value)