diff --git a/lib/inventree/stock.dart b/lib/inventree/stock.dart index b1c64e53..d48fb5a6 100644 --- a/lib/inventree/stock.dart +++ b/lib/inventree/stock.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:InvenTree/inventree/part.dart'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart' as http; import 'model.dart'; @@ -67,6 +68,29 @@ class InvenTreeStockItem extends InvenTreeModel { // TODO } + List testTemplates = List(); + + int get testTemplateCount => testTemplates.length; + + // Get all the test templates associated with this StockItem + Future getTestTemplates(BuildContext context, {bool showDialog=false}) async { + InvenTreePartTestTemplate().list( + context, + filters: { + "part": "${partId}", + }, + dialog: showDialog, + ).then((var templates) { + testTemplates.clear(); + + for (var t in templates) { + if (t is InvenTreePartTestTemplate) { + testTemplates.add(t); + } + } + }); + } + List testResults = List(); int get testResultCount => testResults.length; diff --git a/lib/widget/stock_detail.dart b/lib/widget/stock_detail.dart index 45cfdeb0..54fb5399 100644 --- a/lib/widget/stock_detail.dart +++ b/lib/widget/stock_detail.dart @@ -7,6 +7,7 @@ import 'package:InvenTree/widget/fields.dart'; import 'package:InvenTree/widget/location_display.dart'; import 'package:InvenTree/widget/part_detail.dart'; import 'package:InvenTree/widget/refreshable_state.dart'; +import 'package:InvenTree/widget/stock_item_test_results.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -429,7 +430,9 @@ class _StockItemDisplayState extends RefreshableState { title: Text("Test Results"), leading: FaIcon(FontAwesomeIcons.tasks), trailing: Text("${item.testResultCount}"), - onTap: null, + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (context) => StockItemTestResultsWidget(item))); + } ) ); diff --git a/lib/widget/stock_item_test_results.dart b/lib/widget/stock_item_test_results.dart new file mode 100644 index 00000000..3d3c402a --- /dev/null +++ b/lib/widget/stock_item_test_results.dart @@ -0,0 +1,40 @@ +import 'package:InvenTree/inventree/stock.dart'; +import 'package:InvenTree/api.dart'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:InvenTree/widget/refreshable_state.dart'; + +class StockItemTestResultsWidget extends StatefulWidget { + + StockItemTestResultsWidget(this.item, {Key key}) : super(key: key); + + final InvenTreeStockItem item; + + @override + _StockItemTestResultDisplayState createState() => _StockItemTestResultDisplayState(item); +} + + +class _StockItemTestResultDisplayState extends RefreshableState { + + @override + String getAppBarTitle(BuildContext context) { return "Test Results"; } + + @override + Future request(BuildContext context) async { + await item.getTestTemplates(context); + await item.getTestResults(context); + } + + final InvenTreeStockItem item; + + _StockItemTestResultDisplayState(this.item); + + @override + Widget getBody(BuildContext context) { + return ListView( + + ); + } +} \ No newline at end of file