mirror of
https://github.com/inventree/inventree-app.git
synced 2025-06-13 02:35:27 +00:00
Show used in assembly list (#209)
* Update default list filters for BomItem * Display "usedIn" count for part detail view * Improve BillOfMaterials widget to display "used in" parts * Update release notes
This commit is contained in:
@ -4,10 +4,12 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart";
|
||||
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/app_colors.dart";
|
||||
import "package:inventree/inventree/stock.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
|
||||
import "package:inventree/inventree/bom.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/inventree/stock.dart";
|
||||
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/bom_list.dart";
|
||||
@ -49,6 +51,8 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
||||
|
||||
int bomCount = 0;
|
||||
|
||||
int usedInCount = 0;
|
||||
|
||||
int variantCount = 0;
|
||||
|
||||
@override
|
||||
@ -154,6 +158,19 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
||||
}
|
||||
});
|
||||
|
||||
// Request number of "used in" parts
|
||||
InvenTreeBomItem().count(
|
||||
filters: {
|
||||
"uses": part.pk.toString(),
|
||||
}
|
||||
).then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
usedInCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Request the number of variant items
|
||||
InvenTreePart().count(
|
||||
filters: {
|
||||
@ -415,6 +432,27 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
||||
}
|
||||
}
|
||||
|
||||
if (part.isComponent) {
|
||||
if (usedInCount > 0) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().usedIn),
|
||||
subtitle: Text(L10().usedInDetails),
|
||||
leading: FaIcon(FontAwesomeIcons.layerGroup, color: COLOR_CLICK),
|
||||
trailing: Text(usedInCount.toString()),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => BillOfMaterialsWidget(part, isParentComponent: false)
|
||||
)
|
||||
);
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Keywords?
|
||||
if (part.keywords.isNotEmpty) {
|
||||
tiles.add(
|
||||
|
Reference in New Issue
Block a user