diff --git a/lib/api.dart b/lib/api.dart index 889467a8..169535ec 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -300,6 +300,10 @@ class InvenTreeAPI { */ AdvancedNetworkImage getImage(String imageUrl) { + if (imageUrl.isEmpty) { + imageUrl = staticImage; + } + return new AdvancedNetworkImage(makeUrl(imageUrl), header: defaultHeaders(), useDiskCache: true, diff --git a/lib/inventree/stock.dart b/lib/inventree/stock.dart index 493c71e5..842f32b8 100644 --- a/lib/inventree/stock.dart +++ b/lib/inventree/stock.dart @@ -1,5 +1,6 @@ import 'model.dart'; +import 'package:InvenTree/api.dart'; class InvenTreeStockItem extends InvenTreeModel { @override @@ -11,12 +12,28 @@ class InvenTreeStockItem extends InvenTreeModel { // TODO } - String get partName => jsondata['part_name'] as String ?? ''; + String get partName => jsondata['part__name'] as String ?? ''; + + String get partDescription => jsondata['part__description'] as String ?? ''; + + String get partThumbnail => jsondata['part__thumbnail'] as String ?? InvenTreeAPI.staticThumb; + + int get serialNumber => jsondata['serial'] as int ?? null; double get quantity => jsondata['quantity'] as double ?? 0.0; int get locationId => jsondata['location'] as int ?? -1; + String get displayQuantity { + // Display either quantity or serial number! + + if (serialNumber != null) { + return "SN: $serialNumber"; + } else { + return quantity.toString().trim(); + } + } + @override InvenTreeModel createFromJson(Map json) { var item = InvenTreeStockItem.fromJson(json); diff --git a/lib/widget/location_display.dart b/lib/widget/location_display.dart index c6690eda..86d8a59c 100644 --- a/lib/widget/location_display.dart +++ b/lib/widget/location_display.dart @@ -1,4 +1,4 @@ - +import 'package:InvenTree/api.dart'; import 'package:InvenTree/inventree/stock.dart'; import 'package:InvenTree/widget/drawer.dart'; import 'package:InvenTree/widget/stock_display.dart'; @@ -175,8 +175,15 @@ class StockList extends StatelessWidget { InvenTreeStockItem item = _items[index]; return ListTile( - title: Text("${item.quantity.toString()} x ${item.partName}"), - subtitle: Text("${item.description}"), + title: Text("${item.partName}"), + subtitle: Text("${item.partDescription}"), + leading: Image( + image: InvenTreeAPI().getImage(item.partThumbnail), + width: 48, + ), + trailing: Text("${item.displayQuantity}", + style: TextStyle(fontWeight: FontWeight.bold), + ), onTap: () { _openItem(context, item.pk); },