mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge pull request #2828 from SchrodingersGat/installed-in
Adds ability to include tests results from "installed items"
This commit is contained in:
commit
d43158ab1b
@ -12,11 +12,14 @@ import common.models
|
||||
INVENTREE_SW_VERSION = "0.7.0 dev"
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 37
|
||||
INVENTREE_API_VERSION = 38
|
||||
|
||||
"""
|
||||
Increment this API version number whenever there is a significant change to the API that any clients need to know about
|
||||
|
||||
v38 -> 2022-04-14 : https://github.com/inventree/InvenTree/pull/2828
|
||||
- Adds the ability to include stock test results for "installed items"
|
||||
|
||||
v37 -> 2022-04-07 : https://github.com/inventree/InvenTree/pull/2806
|
||||
- Adds extra stock availability information to the BomItem serializer
|
||||
|
||||
|
@ -1105,7 +1105,6 @@ class StockItemTestResultList(generics.ListCreateAPIView):
|
||||
]
|
||||
|
||||
filter_fields = [
|
||||
'stock_item',
|
||||
'test',
|
||||
'user',
|
||||
'result',
|
||||
@ -1114,6 +1113,38 @@ class StockItemTestResultList(generics.ListCreateAPIView):
|
||||
|
||||
ordering = 'date'
|
||||
|
||||
def filter_queryset(self, queryset):
|
||||
|
||||
params = self.request.query_params
|
||||
|
||||
queryset = super().filter_queryset(queryset)
|
||||
|
||||
# Filter by stock item
|
||||
item = params.get('stock_item', None)
|
||||
|
||||
if item is not None:
|
||||
try:
|
||||
item = StockItem.objects.get(pk=item)
|
||||
|
||||
items = [item]
|
||||
|
||||
# Do we wish to also include test results for 'installed' items?
|
||||
include_installed = str2bool(params.get('include_installed', False))
|
||||
|
||||
if include_installed:
|
||||
# Include items which are installed "underneath" this item
|
||||
# Note that this function is recursive!
|
||||
installed_items = item.get_installed_items(cascade=True)
|
||||
|
||||
items += [it for it in installed_items]
|
||||
|
||||
queryset = queryset.filter(stock_item__in=items)
|
||||
|
||||
except (ValueError, StockItem.DoesNotExist):
|
||||
pass
|
||||
|
||||
return queryset
|
||||
|
||||
def get_serializer(self, *args, **kwargs):
|
||||
try:
|
||||
kwargs['user_detail'] = str2bool(self.request.query_params.get('user_detail', False))
|
||||
|
@ -34,8 +34,8 @@
|
||||
// Should the ID be rendered for this string
|
||||
function renderId(title, pk, parameters={}) {
|
||||
|
||||
// Default = true
|
||||
var render = true;
|
||||
// Default = do not display
|
||||
var render = false;
|
||||
|
||||
if ('render_pk' in parameters) {
|
||||
render = parameters['render_pk'];
|
||||
|
@ -1331,14 +1331,27 @@ function loadStockTestResultsTable(table, options) {
|
||||
});
|
||||
|
||||
// Once the test template data are loaded, query for test results
|
||||
|
||||
var filters = loadTableFilters(filterKey);
|
||||
|
||||
var query_params = {
|
||||
stock_item: options.stock_item,
|
||||
user_detail: true,
|
||||
attachment_detail: true,
|
||||
ordering: '-date',
|
||||
};
|
||||
|
||||
if ('result' in filters) {
|
||||
query_params.result = filters.result;
|
||||
}
|
||||
|
||||
if ('include_installed' in filters) {
|
||||
query_params.include_installed = filters.include_installed;
|
||||
}
|
||||
|
||||
inventreeGet(
|
||||
'{% url "api-stock-test-result-list" %}',
|
||||
{
|
||||
stock_item: options.stock_item,
|
||||
user_detail: true,
|
||||
attachment_detail: true,
|
||||
ordering: '-date',
|
||||
},
|
||||
query_params,
|
||||
{
|
||||
success: function(data) {
|
||||
// Iterate through the returned test data
|
||||
|
@ -265,7 +265,16 @@ function getAvailableTableFilters(tableKey) {
|
||||
|
||||
// Filters for the 'stock test' table
|
||||
if (tableKey == 'stocktests') {
|
||||
return {};
|
||||
return {
|
||||
result: {
|
||||
type: 'bool',
|
||||
title: '{% trans "Test Passed" %}',
|
||||
},
|
||||
include_installed: {
|
||||
type: 'bool',
|
||||
title: '{% trans "Include Installed Items" %}',
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Filters for the 'part test template' table
|
||||
|
Loading…
Reference in New Issue
Block a user