diff --git a/lib/inventree/part.dart b/lib/inventree/part.dart index 382b005a..9dc45f19 100644 --- a/lib/inventree/part.dart +++ b/lib/inventree/part.dart @@ -71,6 +71,33 @@ class InvenTreePart extends InvenTreeModel { @override String URL = "part/"; + List testTemplates; + + int get testTemplateCount { + if (testTemplates == null) { + return 0; + } else { + return testTemplates.length; + } + } + + Future getTestTemplates() async { + + var response = await api.get("/part/test-template/", params: { + "part": "${pk}", + }) + .timeout(Duration(seconds: 10)) + .catchError((e) { + return; + }); + + print("Status: " + response.statusCode.toString()); + + testTemplates = json.decode(response.body); + + return; + } + // Get the number of stock on order for this Part double get onOrder => double.tryParse(jsondata['ordering'].toString() ?? '0'); diff --git a/lib/widget/part_detail.dart b/lib/widget/part_detail.dart index d8da65f2..09a8901f 100644 --- a/lib/widget/part_detail.dart +++ b/lib/widget/part_detail.dart @@ -42,6 +42,7 @@ class _PartDisplayState extends RefreshableState { @override Future request(BuildContext context) async { await part.reload(context); + await part.getTestTemplates(); } void _savePart(Map values) async { @@ -219,7 +220,7 @@ class _PartDisplayState extends RefreshableState { tiles.add(ListTile( title: Text("Required Tests"), leading: FaIcon(FontAwesomeIcons.tasks), - trailing: Text(""), + trailing: Text("${part.testTemplateCount}"), onTap: null, ) );