From a09d0b68875c1ff0bfcf390bd7ee99fd7523e22c Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 15 Aug 2021 14:32:46 +1000 Subject: [PATCH] rendering support for "part" foreign key --- lib/api_form.dart | 37 ++++++++++++++++++++++++++++++++++++- lib/l10n | 2 +- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/lib/api_form.dart b/lib/api_form.dart index ed4b821a..49e6bcd4 100644 --- a/lib/api_form.dart +++ b/lib/api_form.dart @@ -245,7 +245,15 @@ class APIFormField { onChanged: null, showClearButton: !required, itemAsString: (dynamic item) { - return item['pathstring']; + switch (model) { + case "part": + return item["full_name"]; + case "partcategory": + case "stocklocation": + return item["pathstring"]; + default: + return "itemAsString not implemented for '${model}'"; + } }, dropdownBuilder: (context, item, itemAsString) { return _renderRelatedField(item, true, false); @@ -288,6 +296,22 @@ class APIFormField { } switch (model) { + case "part": + + var part = InvenTreePart.fromJson(item); + + return ListTile( + title: Text( + part.fullname, + style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal) + ), + subtitle: extended ? Text( + part.description, + style: TextStyle(fontWeight: selected ? FontWeight.bold : FontWeight.normal), + ) : null, + leading: extended ? InvenTreeAPI().getImage(part.thumbnail, width: 32, height: 32) : null, + ); + case "partcategory": var cat = InvenTreePartCategory.fromJson(item); @@ -587,6 +611,17 @@ class _APIFormWidgetState extends State { ); } } + + // Add divider after some widgets + switch (field.type) { + case "related field": + case "choice": + widgets.add(Divider(height: 10)); + break; + default: + break; + } + } return widgets; diff --git a/lib/l10n b/lib/l10n index c81c1c79..8f8a04c7 160000 --- a/lib/l10n +++ b/lib/l10n @@ -1 +1 @@ -Subproject commit c81c1c79d18a7304761a30adb15090017a613157 +Subproject commit 8f8a04c7bd8ff02f2dbfa75ef168ce812503a31e