2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-14 11:15:26 +00:00

Test result fixes (#564)

* Fix association of test results to templates

* Fixes

* Remove unused vars
This commit is contained in:
Oliver
2024-12-06 10:59:49 +11:00
committed by GitHub
parent b849bfc718
commit 6f5fc1d8a9
5 changed files with 76 additions and 22 deletions

View File

@ -62,12 +62,19 @@ class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestRes
final InvenTreeStockItem item;
Future <void> addTestResult(BuildContext context, {String name = "", bool nameIsEditable = true, bool result = false, String value = "", bool valueRequired = false, bool attachmentRequired = false}) async {
Future <void> addTestResult(BuildContext context, {int templateId = 0, String name = "", bool nameIsEditable = true, bool result = false, String value = "", bool valueRequired = false, bool attachmentRequired = false}) async {
Map<String, Map<String, dynamic>> fields = InvenTreeStockItemTestResult().formFields();
// Add additional filters
fields["template"]?["filters"]?["part"] = "${item.partId}";
InvenTreeStockItemTestResult().createForm(
context,
L10().testResultAdd,
fields: fields,
data: {
"template": "${templateId}",
"stock_item": "${item.pk}",
"test": "${name}",
},
@ -98,10 +105,11 @@ class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestRes
// Check against templates
if (outputs[ii] is InvenTreePartTestTemplate) {
var t = outputs[ii] as InvenTreePartTestTemplate;
var template = outputs[ii] as InvenTreePartTestTemplate;
if (result.key == t.key) {
t.results.add(result);
// Match the result to a template
if (result.templateId == template.pk || result.key == template.key) {
template.results.add(result);
match = true;
break;
}
@ -168,9 +176,10 @@ class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestRes
bool _hasResult = false;
bool _required = false;
String _test = "";
int _templateId = 0;
bool _result = false;
String _value = "";
String _notes = "";
String _date = "";
Widget _icon = Icon(TablerIcons.help_circle, color: Colors.lightBlue);
bool _valueRequired = false;
@ -179,18 +188,20 @@ class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestRes
if (item is InvenTreePartTestTemplate) {
_result = item.passFailStatus();
_test = item.testName;
_templateId = item.pk;
_required = item.required;
_value = item.latestResult()?.value ?? L10().noResults;
_valueRequired = item.requiresValue;
_attachmentRequired = item.requiresAttachment;
_notes = item.latestResult()?.notes ?? item.description;
_date = item.latestResult()?.date ?? "";
_hasResult = item.latestResult() != null;
} else if (item is InvenTreeStockItemTestResult) {
_result = item.result;
_test = item.testName;
_templateId = item.templateId;
_date = item.date;
_required = false;
_value = item.value;
_notes = item.notes;
_hasResult = true;
}
@ -207,17 +218,20 @@ class _StockItemTestResultDisplayState extends RefreshableState<StockItemTestRes
fontWeight: _required ? FontWeight.bold : FontWeight.normal,
fontStyle: _hasResult ? FontStyle.normal : FontStyle.italic
)),
subtitle: Text(_notes),
trailing: Text(_value),
subtitle: Text(_value),
trailing: Text(_date),
leading: _icon,
onTap: () {
addTestResult(
context,
name: _test,
nameIsEditable: !_required,
valueRequired: _valueRequired,
attachmentRequired: _attachmentRequired
);
if (InvenTreeStockItemTestResult().canCreate) {
addTestResult(
context,
name: _test,
templateId: _templateId,
nameIsEditable: !_required,
valueRequired: _valueRequired,
attachmentRequired: _attachmentRequired
);
}
}
));
}