fix(parcels): wrap forecast-export PDF in try/except+logger (#1739 completion)
This commit is contained in:
parent
bcd24923b8
commit
c859872217
1 changed files with 13 additions and 6 deletions
|
|
@ -1302,9 +1302,19 @@ def export_parcel_forecast(
|
|||
|
||||
# pdf — байты (WeasyPrint), отдельной веткой (зеркало pptx early-return): §13-отчёт
|
||||
# из export_report_pdf (#1739). md/json string-ветки остаются байт-в-байт прежними.
|
||||
# WeasyPrint-рендер — отдельная зона отказа (шрифты, шаблон, движок): без обёртки
|
||||
# ошибка всплывает 500-кой без объяснения причины. logger.exception сохраняет
|
||||
# traceback причины 500 (#1739), пользователю — безопасное RU-сообщение.
|
||||
if format == "pdf":
|
||||
try:
|
||||
pdf_bytes = export_report_pdf(run.result)
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception as exc:
|
||||
logger.exception("forecast PDF render failed for %s", cad_num)
|
||||
raise HTTPException(status_code=500, detail="Ошибка генерации PDF-форсайта") from exc
|
||||
return Response(
|
||||
content=export_report_pdf(run.result),
|
||||
content=pdf_bytes,
|
||||
media_type="application/pdf",
|
||||
headers={"Content-Disposition": f'attachment; filename="{base_name}.pdf"'},
|
||||
)
|
||||
|
|
@ -3494,8 +3504,7 @@ def parcel_snapshot_pdf(
|
|||
raise HTTPException(
|
||||
status_code=404,
|
||||
detail=(
|
||||
f"Участок {cad_num} не найден в БД. "
|
||||
"Используйте POST /analyze для загрузки."
|
||||
f"Участок {cad_num} не найден в БД. " "Используйте POST /analyze для загрузки."
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -3618,9 +3627,7 @@ def parcel_snapshot_pdf(
|
|||
raise
|
||||
except Exception as exc:
|
||||
logger.exception("snapshot data fetch failed for %s", cad_num)
|
||||
raise HTTPException(
|
||||
status_code=500, detail="Ошибка сбора данных для PDF-снимка"
|
||||
) from exc
|
||||
raise HTTPException(status_code=500, detail="Ошибка сбора данных для PDF-снимка") from exc
|
||||
|
||||
# 7) Сгенерировать PDF (WeasyPrint-рендер — отдельная зона отказа: шрифты,
|
||||
# шаблон, движок). logger.exception сохраняет traceback причины 500 (#1739).
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue