2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-17 04:35:26 +00:00

Stock display (#379)

* Display stock quantity more prominently

* Cleanup search widget

* Update for stock_detail widget

* More tweaks

* Change bottom bar icon

* Display boolean parameters appropriately

* Adds ability to edit part parameters

* Bump icon size a bit

* Improvements to filter options

- Allow filtering by "option" type
- To start with, filter stock by status code

* Remove debug message

* Remove getTriState method

- No longer needed
- Remove associated unit tests

* Adjust filters based on server API version

* Muted colors
This commit is contained in:
Oliver
2023-06-24 11:34:42 +10:00
committed by GitHub
parent 8076887e39
commit e9eb84eace
20 changed files with 278 additions and 167 deletions

View File

@ -4,6 +4,7 @@ import "package:inventree/inventree/model.dart";
import "package:inventree/l10.dart";
import "package:inventree/inventree/part.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/refreshable_state.dart";
/*
@ -75,7 +76,7 @@ class _PaginatedParameterState extends PaginatedSearchState<PaginatedParameterLi
@override
Map<String, String> get orderingOptions => {
// TODO
};
@override
@ -91,6 +92,22 @@ class _PaginatedParameterState extends PaginatedSearchState<PaginatedParameterLi
return page;
}
Future<void> editParameter(InvenTreePartParameter parameter) async {
// Checkbox values are handled separately
if (parameter.is_checkbox) {
return;
} else {
parameter.editForm(
context,
L10().editParameter,
onSuccess: (data) async {
updateSearchTerm();
}
);
}
}
@override
Widget buildItem(BuildContext context, InvenTreeModel model) {
@ -99,7 +116,28 @@ class _PaginatedParameterState extends PaginatedSearchState<PaginatedParameterLi
return ListTile(
title: Text(parameter.name),
subtitle: Text(parameter.description),
trailing: Text(parameter.valueString),
trailing: parameter.is_checkbox
? Switch(
value: parameter.as_bool,
onChanged: (bool value) {
if (parameter.canEdit) {
showLoadingOverlay(context);
parameter.update(
values: {
"data": value.toString()
}
).then((value) async{
hideLoadingOverlay();
updateSearchTerm();
});
}
},
) : Text(parameter.valueString),
onTap: parameter.is_checkbox ? null : () async {
if (parameter.canEdit) {
editParameter(parameter);
}
},
);
}
}