Merge pull request #1335 from SchrodingersGat/stock-filter

Add option to filter out variants in stock table
This commit is contained in:
Oliver 2021-02-21 20:28:30 +11:00 committed by GitHub
commit cc2b672117
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -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"})

View File

@ -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" %}',