Add ability to filter builds by "active" status

This commit is contained in:
Oliver Walters 2020-09-19 20:42:20 +10:00
parent 11a17fb9b1
commit b8509f7533
3 changed files with 19 additions and 7 deletions

View File

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

View File

@ -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,
}
});

View File

@ -109,7 +109,10 @@ function getAvailableTableFilters(tableKey) {
title: '{% trans "Build status" %}',
options: buildCodes,
},
pending: {
type: 'bool',
title: '{% trans "Pending" %}',
}
};
}