From 8f108d42d2c1bc5aaf635a2365fcb7e1124ea0ca Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 26 Oct 2020 14:43:43 +1100 Subject: [PATCH] Add ability to filter BOM status by "validated" field --- InvenTree/part/api.py | 19 +++++++++++++++++++ InvenTree/templates/js/table_filters.js | 6 +++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index d643b8671a..2f505fa9ad 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -768,6 +768,25 @@ class BomList(generics.ListCreateAPIView): trackable = str2bool(trackable) queryset = queryset.filter(sub_part__trackable=trackable) + # Filter by whether the BOM line has been validated + validated = params.get('validated', None) + + if validated is not None: + + validated = str2bool(validated) + + # Work out which lines have actually been validated + pks = [] + + for bom_item in queryset.all(): + if bom_item.is_line_valid: + pks.append(bom_item.pk) + + if validated: + queryset = queryset.filter(pk__in=pks) + else: + queryset = queryset.exclude(pk__in=pks) + return queryset filter_backends = [ diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js index 114e777c75..2fa6b3b91d 100644 --- a/InvenTree/templates/js/table_filters.js +++ b/InvenTree/templates/js/table_filters.js @@ -17,7 +17,11 @@ function getAvailableTableFilters(tableKey) { trackable: { type: 'bool', title: '{% trans "Trackable Part" %}' - } + }, + validated: { + type: 'bool', + title: '{% trans "Validated" %}', + }, }; }