fix(site-finder): 5 дефектов из фидбека analyze (#1736-1740) #1748

Merged
lekss361 merged 6 commits from fix/sf-feedback-batch into main 2026-06-18 07:06:47 +00:00
Showing only changes of commit c859872217 - Show all commits

View file

@ -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).