2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-05-01 23:16:49 +00:00

Adds convenience function for editing model

This commit is contained in:
Oliver 2021-08-10 08:40:36 +10:00
parent 92a7a73408
commit 67ccbf64b5
3 changed files with 37 additions and 19 deletions

View File

@ -9,6 +9,7 @@ import 'package:url_launcher/url_launcher.dart';
import 'package:path/path.dart' as path;
import '../l10.dart';
import '../api_form.dart';
// Paginated response object
@ -64,6 +65,30 @@ class InvenTreeModel {
}
// Fields for editing / creating this model
// Override per-model
Map<String, dynamic> formFields() {
return {};
}
Future<void> editForm(BuildContext context, String title, {Map<String, dynamic> fields=const {}, Function? onSuccess}) async {
if (fields.isEmpty) {
fields = formFields();
}
launchApiForm(
context,
title,
url,
fields,
modelData: jsondata,
onSuccess: onSuccess
);
}
// JSON data which defines this object
Map<String, dynamic> jsondata = {};

View File

@ -16,6 +16,16 @@ class InvenTreePartCategory extends InvenTreeModel {
@override
String get URL => "part/category/";
@override
Map<String, dynamic> formFields() {
return {
"name": {},
"description": {},
"parent": {}
};
}
@override
Map<String, String> defaultListFilters() {
var filters = new Map<String, String>();

View File

@ -60,7 +60,6 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
}
void _editCategoryDialog(BuildContext context) {
final _cat = category;
// Cannot edit top-level category
@ -68,18 +67,7 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
return;
}
launchApiForm(
context,
L10().editCategory,
_cat.url,
{
"name": {},
"description": {},
"parent": {},
},
modelData: _cat.jsondata,
onSuccess: refresh,
);
_cat.editForm(context, L10().editCategory, onSuccess: refresh);
}
_CategoryDisplayState(this.category);
@ -227,12 +215,7 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
context,
L10().categoryCreate,
InvenTreePartCategory().URL,
{
"name": {},
"description": {},
"parent": {
}
},
InvenTreePartCategory().formFields(),
modelData: {
"parent": (pk > 0) ? pk : null,
}