diff --git a/lib/widget/stock_detail.dart b/lib/widget/stock_detail.dart index ab871507..61b1d500 100644 --- a/lib/widget/stock_detail.dart +++ b/lib/widget/stock_detail.dart @@ -53,14 +53,31 @@ class _StockItemDisplayState extends RefreshableState { final _editStockKey = GlobalKey(); _StockItemDisplayState(this.item) { - // TODO } + // StockItem object final InvenTreeStockItem item; + // Part object + InvenTreePart part; + + @override + Future onBuild(BuildContext context) async { + + // Load part data if not already loaded + if (part == null) { + refresh(); + } + } + @override Future request(BuildContext context) async { await item.reload(context); + + // Request part information + part = await InvenTreePart().get(context, item.partId); + + // Request test results... await item.getTestResults(context); } @@ -417,23 +434,27 @@ class _StockItemDisplayState extends RefreshableState { ); } - tiles.add( - ListTile( - title: Text(I18N.of(context).testResults), - leading: FaIcon(FontAwesomeIcons.tasks), - trailing: Text("${item.testResultCount}"), - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => StockItemTestResultsWidget(item)) - ).then((context) { - refresh(); - }); - } - ) - ); + if ((item.testResultCount > 0) || (part != null && part.isTrackable)) { + tiles.add( + ListTile( + title: Text(I18N.of(context).testResults), + leading: FaIcon(FontAwesomeIcons.tasks), + trailing: Text("${item.testResultCount}"), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => StockItemTestResultsWidget(item)) + ).then((context) { + refresh(); + }); + } + ) + ); + } - if (item.trackingItemCount > 0) { + // TODO - Re-enable stock item history display + if (false && item.trackingItemCount > 0) { tiles.add( ListTile( title: Text(I18N.of(context).history),