2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-07-15 01:41:34 +00:00

Label fix (#411)

* Cleanup label printing options

- Improve calls to setState()
- Should fix potential race conditions

* Use name if description not available

* Code simplification

* Fetch plugins even if the server reports "plugins enabled"

- Builtin plugins are still a thing!

* Use name *and* description to display label
This commit is contained in:
Oliver
2023-08-12 20:41:11 +10:00
committed by GitHub
parent d81f0d532d
commit 8200140976
5 changed files with 40 additions and 30 deletions

View File

@ -128,7 +128,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
);
}
if (allowLabelPrinting && labels.isNotEmpty) {
if (labels.isNotEmpty) {
actions.add(
SpeedDialChild(
child: FaIcon(FontAwesomeIcons.print),
@ -204,8 +204,6 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
int attachmentCount = 0;
bool allowLabelPrinting = true;
@override
Future<void> onBuild(BuildContext context) async {
// Load part data if not already loaded
@ -259,18 +257,23 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
}
});
// Determine if label printing is supported
allowLabelPrinting = await InvenTreeSettingsManager().getBool(INV_ENABLE_LABEL_PRINTING, true);
allowLabelPrinting &= api.getPlugins(mixin: "labels").isNotEmpty;
List<Map<String, dynamic>> _labels = [];
bool allowLabelPrinting = await InvenTreeSettingsManager().getBool(INV_ENABLE_LABEL_PRINTING, true);
allowLabelPrinting &= api.supportsMixin("labels");
// Request information on labels available for this stock item
if (allowLabelPrinting) {
// Clear the existing labels list
labels.clear();
labels = await getLabelTemplates("stock", {
_labels = await getLabelTemplates("stock", {
"item": widget.item.pk.toString()
});
}
if (mounted) {
setState(() {
labels = _labels;
});
}
}
/// Delete the stock item from the database