From 9c8717574a2e216b449ea59747596b6e34ea29e0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 2 Jul 2021 16:31:42 +0200 Subject: [PATCH 1/2] implement purchase price filter for stock table Closes #1717 --- InvenTree/stock/api.py | 12 ++++++++++++ InvenTree/templates/js/table_filters.js | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 3fc440cae4..17a762c357 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -858,6 +858,18 @@ class StockList(generics.ListCreateAPIView): print("After error:", str(updated_after)) pass + # Filter stock items which have a purchase price set + has_purchase_price = params.get('has_purchase_price', None) + + if has_purchase_price is not None: + has_purchase_price = str2bool(has_purchase_price) + + if has_purchase_price: + queryset = queryset.exclude(purchase_price=None) + else: + queryset = queryset.filter(purchase_price=None) + + # Optionally, limit the maximum number of returned results max_results = params.get('max_results', None) diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js index d02fa50d80..3dfb424edf 100644 --- a/InvenTree/templates/js/table_filters.js +++ b/InvenTree/templates/js/table_filters.js @@ -205,7 +205,12 @@ function getAvailableTableFilters(tableKey) { batch: { title: '{% trans "Batch" %}', description: '{% trans "Batch code" %}', - } + }, + has_purchase_price: { + type: 'bool', + title: '{% trans "Has purchase price" %}', + description: '{% trans "Show stock items which have a purchase price set" %}', + }, }; } From f051714a7510dbef72ddc94220f2dd743def69c8 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 2 Jul 2021 16:34:06 +0200 Subject: [PATCH 2/2] style fix --- InvenTree/stock/api.py | 1 - 1 file changed, 1 deletion(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 17a762c357..98dcab6287 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -869,7 +869,6 @@ class StockList(generics.ListCreateAPIView): else: queryset = queryset.filter(purchase_price=None) - # Optionally, limit the maximum number of returned results max_results = params.get('max_results', None)