From cc8238b790aadaa71c5b3221473043c5a7af6f62 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 6 Jul 2022 15:28:44 +1000 Subject: [PATCH] Allow BOM table to be filtered by "stock available" parameter (#3301) * Allow BOM table to be filtered by "stock available" parameter * Update API version info * PEP fixes --- InvenTree/InvenTree/api_version.py | 4 ++++ InvenTree/part/api.py | 14 ++++++++++++++ InvenTree/templates/js/translated/table_filters.js | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/InvenTree/InvenTree/api_version.py b/InvenTree/InvenTree/api_version.py index 6db9e05719..8da4135b12 100644 --- a/InvenTree/InvenTree/api_version.py +++ b/InvenTree/InvenTree/api_version.py @@ -7,8 +7,12 @@ INVENTREE_API_VERSION = 61 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v63 -> 2022-07-06 : https://github.com/inventree/InvenTree/pull/3301 + - Allow BOM List API endpoint to be filtered by "available_stock" paramater + v62 -> 2022-07-05 : https://github.com/inventree/InvenTree/pull/3296 - Allows search on BOM List API endpoint + - Allows ordering on BOM List API endpoint v61 -> 2022-06-12 : https://github.com/inventree/InvenTree/pull/3183 - Migrate the "Convert Stock Item" form class to use the API diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index c4cada7430..ca67ba1b35 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -1531,6 +1531,20 @@ class BomFilter(rest_filters.FilterSet): return queryset + available_stock = rest_filters.BooleanFilter(label="Has available stock", method="filter_available_stock") + + def filter_available_stock(self, queryset, name, value): + """Filter the queryset based on whether each line item has any available stock""" + + value = str2bool(value) + + if value: + queryset = queryset.filter(available_stock__gt=0) + else: + queryset = queryset.filter(available_stock=0) + + return queryset + class BomList(ListCreateDestroyAPIView): """API endpoint for accessing a list of BomItem objects. diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js index d2a1f4c9bd..c13ee3fb1a 100644 --- a/InvenTree/templates/js/translated/table_filters.js +++ b/InvenTree/templates/js/translated/table_filters.js @@ -59,6 +59,10 @@ function getAvailableTableFilters(tableKey) { type: 'bool', title: '{% trans "Assembled Part" %}', }, + available_stock: { + type: 'bool', + title: '{% trans "Has Available Stock" %}', + }, validated: { type: 'bool', title: '{% trans "Validated" %}',