mirror of
https://github.com/inventree/inventree-app.git
synced 2025-12-16 17:18:07 +00:00
Parameters refactor (#738)
* refactor attachment code into its own file * Add getters * Remove custom models for each type of attachment * Refactor existing widgets * Fix double camera open bug * Add check for modern parameter API * Add generic parameter type * Remove old code * Remove dead code * Refactor previous widget * Remove unused imports * Refactor common code * format * Update release notes * Helper func to render parameters list tile * Display parameters on part page * parameters for company * Supplier more model types: - ManufacturerPart - SupplierPart - PurchaseOrder - SalesOrder * dart format * Fix image prefix * Remove unused import * Adjust API version
This commit is contained in:
@@ -2,6 +2,7 @@ import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/api.dart";
|
||||
@@ -14,6 +15,7 @@ import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/order/purchase_order_list.dart";
|
||||
import "package:inventree/widget/order/sales_order_list.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
import "package:inventree/widget/company/supplier_part_list.dart";
|
||||
@@ -38,6 +40,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
||||
int outstandingPurchaseOrders = 0;
|
||||
int outstandingSalesOrders = 0;
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
@@ -185,6 +188,16 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeParameter()
|
||||
.countParameters(InvenTreeCompany.MODEL_TYPE, widget.company.pk)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreeCompany.MODEL_TYPE, widget.company.pk)
|
||||
.then((value) {
|
||||
@@ -394,6 +407,18 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
||||
);
|
||||
}
|
||||
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
widget.company.pk,
|
||||
parameterCount,
|
||||
widget.company.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/api.dart";
|
||||
@@ -8,6 +10,8 @@ import "package:inventree/app_colors.dart";
|
||||
|
||||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
@@ -31,6 +35,9 @@ class _ManufacturerPartDisplayState
|
||||
extends RefreshableState<ManufacturerPartDetailWidget> {
|
||||
_ManufacturerPartDisplayState();
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().manufacturerPart;
|
||||
|
||||
@@ -42,7 +49,34 @@ class _ManufacturerPartDisplayState
|
||||
|
||||
if (!result) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
|
||||
InvenTreeParameter()
|
||||
.countParameters(
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> editManufacturerPart(BuildContext context) async {
|
||||
@@ -91,11 +125,6 @@ class _ManufacturerPartDisplayState
|
||||
List<Widget> getTiles(BuildContext context) {
|
||||
List<Widget> tiles = [];
|
||||
|
||||
if (loading) {
|
||||
tiles.add(progressIndicator());
|
||||
return tiles;
|
||||
}
|
||||
|
||||
// Internal Part
|
||||
tiles.add(
|
||||
ListTile(
|
||||
@@ -174,6 +203,31 @@ class _ManufacturerPartDisplayState
|
||||
);
|
||||
}
|
||||
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
parameterCount,
|
||||
widget.manufacturerPart.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
widget.manufacturerPart.MPN,
|
||||
attachmentCount,
|
||||
widget.manufacturerPart.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
|
||||
import "package:inventree/app_colors.dart";
|
||||
@@ -11,6 +14,7 @@ import "package:inventree/barcode/barcode.dart";
|
||||
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
@@ -35,6 +39,9 @@ class _SupplierPartDisplayState
|
||||
extends RefreshableState<SupplierPartDetailWidget> {
|
||||
_SupplierPartDisplayState();
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().supplierPart;
|
||||
|
||||
@@ -97,7 +104,34 @@ class _SupplierPartDisplayState
|
||||
|
||||
if (!result) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
|
||||
InvenTreeParameter()
|
||||
.countParameters(
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -286,6 +320,31 @@ class _SupplierPartDisplayState
|
||||
);
|
||||
}
|
||||
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
parameterCount,
|
||||
widget.supplierPart.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
widget.supplierPart.SKU,
|
||||
attachmentCount,
|
||||
widget.supplierPart.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user