gendesign/backend/app/services/exporters
Light1YT 3a89287c6b
All checks were successful
CI / changes (push) Successful in 7s
CI / changes (pull_request) Successful in 6s
CI / backend-tests (push) Has been skipped
Deploy / changes (push) Successful in 6s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 2m49s
Deploy / build-worker (push) Successful in 3m27s
Deploy / deploy (push) Successful in 1m13s
CI / backend-tests (pull_request) Successful in 6m4s
feat(export): add DOCX export of §22 forecast report (#959)
render_report_docx (python-docx) mirrors report_md/report_pdf section order &
content, reuses report_pdf pure helpers (DRY), graceful on thin/empty report.
Widen /forecast/export format Literal to include docx → Word attachment.
Add python-docx dep + regenerate uv.lock (uv sync --frozen passes). Part of #959.
2026-06-07 13:58:04 +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_docx.py feat(export): add DOCX export of §22 forecast report (#959) 2026-06-07 13:58:04 +05:00
report_md.py feat(export): compact Telegram summary export for §22 forecast (#959) 2026-06-06 18:55:47 +00: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