From dffff89e9d1e1d68591b953241a19dd260af372b Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 21 Feb 2021 20:08:23 +1100 Subject: [PATCH] Add option to filter out variants in stock table --- InvenTree/stock/api.py | 13 ++++++++++--- InvenTree/templates/js/table_filters.js | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py index 36ea8d453d..4e532b90b7 100644 --- a/InvenTree/stock/api.py +++ b/InvenTree/stock/api.py @@ -684,10 +684,17 @@ class StockList(generics.ListCreateAPIView): try: part = Part.objects.get(pk=part_id) - # Filter by any parts "under" the given part - parts = part.get_descendants(include_self=True) + # Do we wish to filter *just* for this part, or also for parts *under* this one? + include_variants = str2bool(params.get('include_variants', True)) - queryset = queryset.filter(part__in=parts) + if include_variants: + # Filter by any parts "under" the given part + parts = part.get_descendants(include_self=True) + + queryset = queryset.filter(part__in=parts) + + else: + queryset = queryset.filter(part=part) except (ValueError, Part.DoesNotExist): raise ValidationError({"part": "Invalid Part ID specified"}) diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js index 4c802446fc..39224c4ffe 100644 --- a/InvenTree/templates/js/table_filters.js +++ b/InvenTree/templates/js/table_filters.js @@ -130,6 +130,11 @@ function getAvailableTableFilters(tableKey) { title: '{% trans "In Production" %}', description: '{% trans "Show items which are in production" %}', }, + include_variants: { + type: 'bool', + title: '{% trans "Include Variants" %}', + description: '{% trans "Include stock items for variant parts" %}', + }, installed: { type: 'bool', title: '{% trans "Installed" %}',