Updates to the inspector view to fix matching quote forms to be able to display and also the apply script which now checks for existing jobMaterials before writing.

This commit is contained in:
2026-05-12 20:22:50 +09:30
parent c425f45910
commit c4248eba76
2 changed files with 131 additions and 9 deletions
+14 -6
View File
@@ -93,6 +93,14 @@ def pretty_json(value):
return str(value)
def html_value(value):
if value is None:
return ""
if isinstance(value, (dict, list)):
return pretty_json(value)
return str(value)
def parse_json_field(value, default=None):
if value is None:
return default
@@ -520,10 +528,10 @@ def form_response_detail(row_id: int):
for item in sorted(field_data, key=lambda x: x.get("SortOrder", 0)):
field_rows.append(
f"<tr>"
f"<td>{escape(str(item.get('SortOrder', '')))}</td>"
f"<td>{escape(item.get('FieldType', ''))}</td>"
f"<td>{escape(item.get('Question', ''))}</td>"
f"<td>{escape(item.get('Response', ''))}</td>"
f"<td>{escape(html_value(item.get('SortOrder')))}</td>"
f"<td>{escape(html_value(item.get('FieldType')))}</td>"
f"<td>{escape(html_value(item.get('Question')))}</td>"
f"<td>{escape(html_value(item.get('Response')))}</td>"
f"</tr>"
)
@@ -851,8 +859,8 @@ def polled_form_response_detail(form_response_uuid: str):
for item in sorted(field_data, key=lambda x: x.get("SortOrder", 0) if isinstance(x, dict) else 0):
if isinstance(item, dict):
field_rows.append(
f"<tr><td>{escape(str(item.get('SortOrder', '')))}</td><td>{escape(item.get('FieldType', ''))}</td>"
f"<td>{escape(item.get('Question', ''))}</td><td>{escape(item.get('Response', ''))}</td></tr>"
f"<tr><td>{escape(html_value(item.get('SortOrder')))}</td><td>{escape(html_value(item.get('FieldType')))}</td>"
f"<td>{escape(html_value(item.get('Question')))}</td><td>{escape(html_value(item.get('Response')))}</td></tr>"
)
quote_link = f"<div><strong>Parsed quote</strong></div><div><a href='/poll/quote-template/{escape(form_response_uuid)}'>Open parsed Quote Template view</a></div>" if quote else ""