Skip to content

Commit

Permalink
More debug (#405)
Browse files Browse the repository at this point in the history
* Extra options for sentry

* Use string comparison

* Catch error when constructing related field

* Include field name in debug
  • Loading branch information
SchrodingersGat committed Jul 22, 2023
1 parent 2e2e964 commit b044c53
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 20 deletions.
1 change: 1 addition & 0 deletions assets/release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
- Enable label printing for stock locations
- Enable label printing for parts
- Updated translation support
- Bug files

### 0.12.5 - July 2023
---
Expand Down
57 changes: 37 additions & 20 deletions lib/api_form.dart
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ class APIFormField {
isFilterOnline: true,
showSearchBox: true,
itemBuilder: (context, item, isSelected) {
return _renderRelatedField(item, isSelected, true);
return _renderRelatedField(name, item, isSelected, true);
},
emptyBuilder: (context, item) {
return _renderEmptyResult();
Expand Down Expand Up @@ -566,7 +566,7 @@ class APIFormField {
}
},
dropdownBuilder: (context, item) {
return _renderRelatedField(item, true, false);
return _renderRelatedField(name, item, true, false);
},
onSaved: (item) {
if (item != null) {
Expand All @@ -582,15 +582,32 @@ class APIFormField {
return false;
}

return item["pk"] == selectedItem["pk"];
return item["pk"].toString() == selectedItem["pk"].toString();
});
}

// 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
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) {
case "part":
Expand All @@ -599,7 +616,7 @@ class APIFormField {

return ListTile(
title: Text(
part.fullname,
part.fullname,
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
),
subtitle: extended ? Text(
Expand All @@ -615,8 +632,8 @@ class APIFormField {

return ListTile(
title: Text(
cat.pathstring,
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
cat.pathstring,
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
),
subtitle: extended ? Text(
cat.description,
Expand All @@ -629,7 +646,7 @@ class APIFormField {

return ListTile(
title: Text(
loc.pathstring,
loc.pathstring,
style: TextStyle(fontWeight: selected && extended ? FontWeight.bold : FontWeight.normal)
),
subtitle: extended ? Text(
Expand All @@ -654,25 +671,25 @@ class APIFormField {
case "company":
var company = InvenTreeCompany.fromJson(data);
return ListTile(
title: Text(company.name),
subtitle: extended ? Text(company.description) : null,
leading: InvenTreeAPI().getThumbnail(company.thumbnail)
title: Text(company.name),
subtitle: extended ? Text(company.description) : null,
leading: InvenTreeAPI().getThumbnail(company.thumbnail)
);
case "projectcode":
var project_code = InvenTreeProjectCode.fromJson(data);
return ListTile(
title: Text(project_code.code),
subtitle: Text(project_code.description),
leading: FaIcon(FontAwesomeIcons.list)
title: Text(project_code.code),
subtitle: Text(project_code.description),
leading: FaIcon(FontAwesomeIcons.list)
);
default:
return ListTile(
title: Text(
"Unsupported model",
style: TextStyle(
fontWeight: FontWeight.bold,
color: COLOR_DANGER
)
"Unsupported model",
style: TextStyle(
fontWeight: FontWeight.bold,
color: COLOR_DANGER
)
),
subtitle: Text("Model '${model}' rendering not supported"),
);
Expand Down
4 changes: 4 additions & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,7 @@ flutter:
- assets/sounds/barcode_scan.mp3
- assets/sounds/barcode_error.mp3
- assets/sounds/server_error.mp3

sentry:
upload_debug_symbols: true
upload_source_maps: true

0 comments on commit b044c53

Please sign in to comment.