gendesign/backend/app/services/exporters
Light1YT 9ca8c9bf26
All checks were successful
CI / changes (push) Successful in 6s
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Successful in 6m9s
CI / backend-tests (push) Successful in 5m58s
feat(export): Markdown + JSON download of §22 forecast report (#959)
render_report_markdown (pure, no new runtime deps) reuses report_pdf's str
helpers (DRY), + GET /{cad_num}/forecast/export?format=md|json. No forecast run
→ 404; graceful on thin/empty reports; GFM-safe table escaping. PDF/XLSX already
existed; this adds the cheapest no-dep formats. Part of EPIC #959.
2026-06-06 23:39:17 +05:00
..
__init__.py init 2026-04-25 13:45:19 +03:00
dxf.py init 2026-04-25 13:45:19 +03:00
excel.py fix(exporters): read real SiteFinderReport keys in PDF/Excel (#989, #991) 2026-06-04 10:56:51 +05:00
layout_tz_pdf.py fix(analyze): district KeyError 500 in #994 persist + revive by-bbox tests 2026-06-03 18:04:37 +05:00
pdf.py init 2026-04-25 13:45:19 +03:00
report_md.py feat(export): Markdown + JSON download of §22 forecast report (#959) 2026-06-06 23:39:17 +05:00
report_pdf.py fix(exporters): read real SiteFinderReport keys in PDF/Excel (#989, #991) 2026-06-04 10:56:51 +05:00
snapshot_pdf.py feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00
trade_in_pdf.py fix(analyze): district KeyError 500 in #994 persist + revive by-bbox tests 2026-06-03 18:04:37 +05:00