diff --git a/apps/backend/app/utils/report_template.py b/apps/backend/app/utils/report_template.py
index f3d06e2c..5459598f 100644
--- a/apps/backend/app/utils/report_template.py
+++ b/apps/backend/app/utils/report_template.py
@@ -1,6 +1,18 @@
def render_report_html(data):
- params_html = "".join(f"
| {k} | {v} |
" for k, v in data["asl_parameters"])
- missing_html = "".join(f"{param}" for param in data["missing_parameters"])
+ asl_parameters = data.get("asl_parameters", {})
+ if isinstance(asl_parameters, dict):
+ parameter_items = asl_parameters.items()
+ else:
+ parameter_items = asl_parameters
+
+ missing_parameters = data.get("missing_required_parameters", data.get("missing_parameters", []))
+ if isinstance(missing_parameters, dict):
+ missing_items = missing_parameters.keys()
+ else:
+ missing_items = missing_parameters
+
+ params_html = "".join(f"| {k} | {v} |
" for k, v in parameter_items)
+ missing_html = "".join(f"{param}" for param in missing_items)
return f"""
@@ -18,9 +30,9 @@ def render_report_html(data):
{params_html}
Basic Report
- {data["basic_report"]}
+ {data.get("basic_report", "No basic report available.")}
Extended Report
- {data["extended_report"]}
+ {data.get("extended_report", "No extended report available.")}
Missing Parameters
{missing_html}
diff --git a/apps/backend/tests/test_report.py b/apps/backend/tests/test_report.py
index 2dd19c8f..bea017be 100644
--- a/apps/backend/tests/test_report.py
+++ b/apps/backend/tests/test_report.py
@@ -40,4 +40,16 @@ def test_report_pdf_endpoint():
}
response = client.post("/api/report/report-pdf", json=report_data)
assert response.status_code == 200
+ assert response.headers["content-type"] == "application/pdf"
+
+
+def test_report_pdf_endpoint_uses_missing_required_parameters():
+ report_data = {
+ "report_data": {
+ "asl_parameters": {"param1": "value1"},
+ "missing_required_parameters": {"PostLabelingDelay": "ms"},
+ }
+ }
+ response = client.post("/api/report/report-pdf", json=report_data)
+ assert response.status_code == 200
assert response.headers["content-type"] == "application/pdf"
\ No newline at end of file