mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 05:26:47 +00:00
More debug (#405)
* Extra options for sentry * Use string comparison * Catch error when constructing related field * Include field name in debug
This commit is contained in:
parent
2e2e9640d4
commit
b044c53d91
@ -4,6 +4,7 @@
|
|||||||
- Enable label printing for stock locations
|
- Enable label printing for stock locations
|
||||||
- Enable label printing for parts
|
- Enable label printing for parts
|
||||||
- Updated translation support
|
- Updated translation support
|
||||||
|
- Bug files
|
||||||
|
|
||||||
### 0.12.5 - July 2023
|
### 0.12.5 - July 2023
|
||||||
---
|
---
|
||||||
|
@ -513,7 +513,7 @@ class APIFormField {
|
|||||||
isFilterOnline: true,
|
isFilterOnline: true,
|
||||||
showSearchBox: true,
|
showSearchBox: true,
|
||||||
itemBuilder: (context, item, isSelected) {
|
itemBuilder: (context, item, isSelected) {
|
||||||
return _renderRelatedField(item, isSelected, true);
|
return _renderRelatedField(name, item, isSelected, true);
|
||||||
},
|
},
|
||||||
emptyBuilder: (context, item) {
|
emptyBuilder: (context, item) {
|
||||||
return _renderEmptyResult();
|
return _renderEmptyResult();
|
||||||
@ -566,7 +566,7 @@ class APIFormField {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
dropdownBuilder: (context, item) {
|
dropdownBuilder: (context, item) {
|
||||||
return _renderRelatedField(item, true, false);
|
return _renderRelatedField(name, item, true, false);
|
||||||
},
|
},
|
||||||
onSaved: (item) {
|
onSaved: (item) {
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
@ -582,15 +582,32 @@ class APIFormField {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return item["pk"] == selectedItem["pk"];
|
return item["pk"].toString() == selectedItem["pk"].toString();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Render a "related field" based on the "model" type
|
// Render a "related field" based on the "model" type
|
||||||
Widget _renderRelatedField(dynamic item, bool selected, bool extended) {
|
Widget _renderRelatedField(String fieldName, dynamic item, bool selected, bool extended) {
|
||||||
|
|
||||||
// Convert to JSON
|
// Convert to JSON
|
||||||
var data = Map<String, dynamic>.from((item ?? {}) as Map);
|
Map<String, dynamic> data = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
data = Map<String, dynamic>.from((item ?? {}) as Map);
|
||||||
|
} catch (error, stackTrace) {
|
||||||
|
data = {};
|
||||||
|
|
||||||
|
sentryReportError(
|
||||||
|
"_renderRelatedField", error, stackTrace,
|
||||||
|
context: {
|
||||||
|
"method": "_renderRelateField",
|
||||||
|
"field_name": fieldName,
|
||||||
|
"item": item.toString(),
|
||||||
|
"selected": selected.toString(),
|
||||||
|
"extended": extended.toString(),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
switch (model) {
|
switch (model) {
|
||||||
case "part":
|
case "part":
|
||||||
@ -599,7 +616,7 @@ class APIFormField {
|
|||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
part.fullname,
|
part.fullname,
|
||||||
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
||||||
),
|
),
|
||||||
subtitle: extended ? Text(
|
subtitle: extended ? Text(
|
||||||
@ -615,8 +632,8 @@ class APIFormField {
|
|||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
cat.pathstring,
|
cat.pathstring,
|
||||||
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
||||||
),
|
),
|
||||||
subtitle: extended ? Text(
|
subtitle: extended ? Text(
|
||||||
cat.description,
|
cat.description,
|
||||||
@ -629,7 +646,7 @@ class APIFormField {
|
|||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
loc.pathstring,
|
loc.pathstring,
|
||||||
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
|
||||||
),
|
),
|
||||||
subtitle: extended ? Text(
|
subtitle: extended ? Text(
|
||||||
@ -654,25 +671,25 @@ class APIFormField {
|
|||||||
case "company":
|
case "company":
|
||||||
var company = InvenTreeCompany.fromJson(data);
|
var company = InvenTreeCompany.fromJson(data);
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(company.name),
|
title: Text(company.name),
|
||||||
subtitle: extended ? Text(company.description) : null,
|
subtitle: extended ? Text(company.description) : null,
|
||||||
leading: InvenTreeAPI().getThumbnail(company.thumbnail)
|
leading: InvenTreeAPI().getThumbnail(company.thumbnail)
|
||||||
);
|
);
|
||||||
case "projectcode":
|
case "projectcode":
|
||||||
var project_code = InvenTreeProjectCode.fromJson(data);
|
var project_code = InvenTreeProjectCode.fromJson(data);
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(project_code.code),
|
title: Text(project_code.code),
|
||||||
subtitle: Text(project_code.description),
|
subtitle: Text(project_code.description),
|
||||||
leading: FaIcon(FontAwesomeIcons.list)
|
leading: FaIcon(FontAwesomeIcons.list)
|
||||||
);
|
);
|
||||||
default:
|
default:
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
"Unsupported model",
|
"Unsupported model",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: COLOR_DANGER
|
color: COLOR_DANGER
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
subtitle: Text("Model '${model}' rendering not supported"),
|
subtitle: Text("Model '${model}' rendering not supported"),
|
||||||
);
|
);
|
||||||
|
@ -70,3 +70,7 @@ flutter:
|
|||||||
- assets/sounds/barcode_scan.mp3
|
- assets/sounds/barcode_scan.mp3
|
||||||
- assets/sounds/barcode_error.mp3
|
- assets/sounds/barcode_error.mp3
|
||||||
- assets/sounds/server_error.mp3
|
- assets/sounds/server_error.mp3
|
||||||
|
|
||||||
|
sentry:
|
||||||
|
upload_debug_symbols: true
|
||||||
|
upload_source_maps: true
|
Loading…
x
Reference in New Issue
Block a user