diff --git a/assets/release_notes.md b/assets/release_notes.md index 9afdab85..7ada37f6 100644 --- a/assets/release_notes.md +++ b/assets/release_notes.md @@ -3,6 +3,7 @@ - Fix background image transparency for dark mode - Fix link to Bill of Materials from Part screen +- Improvements to supplier part detail screen ### 0.11.4 - April 2023 diff --git a/lib/inventree/company.dart b/lib/inventree/company.dart index a0d37a05..ae711b7b 100644 --- a/lib/inventree/company.dart +++ b/lib/inventree/company.dart @@ -148,6 +148,8 @@ class InvenTreeSupplierPart extends InvenTreeModel { return _filters(); } + int get manufacturerId => (jsondata["manufacturer_detail"]["pk"] ?? -1) as int; + String get manufacturerName => (jsondata["manufacturer_detail"]?["name"] ?? "") as String; String get MPN => (jsondata["manufacturer_part_detail"]?["MPN"] ?? "") as String; diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 661e300f..2d353b71 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -464,6 +464,9 @@ "inProductionDetail": "This stock item is in production", "@inProductionDetail": {}, + "internalPart": "Internal Part", + "@internalPart": {}, + "invalidHost": "Invalid hostname", "@invalidHost": {}, @@ -555,6 +558,12 @@ "lost": "Lost", "@lost": {}, + "manufacturerPartNumber": "Manufacturer Part Number", + "@manufacturerPartNumber": {}, + + "manufacturer": "Manufacturer", + "@manufacturer": {}, + "manufacturers": "Manufacturers", "@manufacturers": {}, @@ -1146,6 +1155,9 @@ "supplierPartEdit": "Edit Supplier Part", "@supplierPartEdit": {}, + "supplierPartNumber": "Supplier Part Number", + "@supplierPartNumber": {}, + "supplierPartUpdated": "Supplier Part Updated", "@supplierPartUpdated": {}, diff --git a/lib/widget/supplier_part_detail.dart b/lib/widget/supplier_part_detail.dart index 9435e64e..85661d45 100644 --- a/lib/widget/supplier_part_detail.dart +++ b/lib/widget/supplier_part_detail.dart @@ -3,6 +3,7 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart"; import "package:font_awesome_flutter/font_awesome_flutter.dart"; import "package:inventree/api.dart"; +import "package:inventree/app_colors.dart"; import "package:inventree/barcode.dart"; import "package:inventree/l10.dart"; @@ -117,9 +118,10 @@ class _SupplierPartDisplayState extends RefreshableState 0) { tiles.add( ListTile( + title: Text(L10().manufacturer), subtitle: Text(widget.supplierPart.manufacturerName), - title: Text(widget.supplierPart.MPN), - leading: FaIcon(FontAwesomeIcons.industry), + leading: FaIcon(FontAwesomeIcons.industry, color: COLOR_ACTION), trailing: InvenTreeAPI().getImage( widget.supplierPart.manufacturerImage, width: 40, height: 40, - ) + ), + onTap: () async { + showLoadingOverlay(context); + var supplier = await InvenTreeCompany().get(widget.supplierPart.manufacturerId); + hideLoadingOverlay(); + + if (supplier is InvenTreeCompany) { + Navigator.push(context, MaterialPageRoute( + builder: (context) => CompanyDetailWidget(supplier) + )); + } + } + ) + ); + + tiles.add( + ListTile( + title: Text(L10().manufacturerPartNumber), + subtitle: Text(widget.supplierPart.MPN), + leading: FaIcon(FontAwesomeIcons.barcode), ) ); } @@ -182,7 +212,7 @@ class _SupplierPartDisplayState extends RefreshableState