From b8509f75333157edd6180a92a95706e4761c632c Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 19 Sep 2020 20:42:20 +1000 Subject: [PATCH] Add ability to filter builds by "active" status --- InvenTree/build/api.py | 17 +++++++++++++---- InvenTree/templates/InvenTree/index.html | 4 ++-- InvenTree/templates/js/table_filters.html | 5 ++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/InvenTree/build/api.py b/InvenTree/build/api.py index 592ff5dc16..c0faee6c15 100644 --- a/InvenTree/build/api.py +++ b/InvenTree/build/api.py @@ -12,6 +12,7 @@ from rest_framework import generics, permissions from django.conf.urls import url, include from InvenTree.helpers import str2bool +from InvenTree.status_codes import BuildStatus from .models import Build, BuildItem from .serializers import BuildSerializer, BuildItemSerializer @@ -59,10 +60,18 @@ class BuildList(generics.ListCreateAPIView): status = self.request.query_params.get('status', None) if status is not None: - # Get status codes - codes = status.split('-') - # Filter by codes - queryset = queryset.filter(status__in=codes) + queryset = queryset.filter(status=status) + + # Filter by "active" status + active = self.request.query_params.get('active', None) + + if active is not None: + active = str2bool(active) + + if active: + queryset = queryset.filter(status__in=BuildStatus.ACTIVE_CODES) + else: + queryset = queryset.exclude(status__in=BuildStatus.ACTIVE_CODES) # Filter by associated part? part = self.request.query_params.get('part', None) diff --git a/InvenTree/templates/InvenTree/index.html b/InvenTree/templates/InvenTree/index.html index 910c296eca..7b4118185a 100644 --- a/InvenTree/templates/InvenTree/index.html +++ b/InvenTree/templates/InvenTree/index.html @@ -80,8 +80,8 @@ loadSimplePartTable("#bom-invalid-table", "{% url 'api-part-list' %}", { loadBuildTable("#build-pending-table", { url: "{% url 'api-build-list' %}", params: { - "part_detail": true, - "status": "10-20", + part_detail: true, + active: true, } }); diff --git a/InvenTree/templates/js/table_filters.html b/InvenTree/templates/js/table_filters.html index 9050edba6f..8fdb6c391c 100644 --- a/InvenTree/templates/js/table_filters.html +++ b/InvenTree/templates/js/table_filters.html @@ -109,7 +109,10 @@ function getAvailableTableFilters(tableKey) { title: '{% trans "Build status" %}', options: buildCodes, }, - + pending: { + type: 'bool', + title: '{% trans "Pending" %}', + } }; }