Backend (parcels.py + layout_tz_pdf.py): - 🟡 /best-layouts/pdf 404 handling: catch ValueError → 404 (consistent с JSON endpoint handling геометрия не найдена) - 🟡 XSS defense-in-depth: html.escape() для r.room_bucket, r.area_bin, m.room_bucket в HTML row generators Frontend (BestLayoutsBlock.tsx): - 🟡 data_window dates → ru-RU locale (toLocaleDateString) - 🟢 target_total_flats clamped к [1, 10000] перед submit (paste-bypass на client защищён, backend Pydantic le=10000) Tests: 5+27 backend pass, frontend tsc/lint/build clean. |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| db/init | ||
| output | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .env.runtime.example | ||
| alembic.ini | ||
| debug.log | ||
| Dockerfile | ||
| pyproject.toml | ||
| uv.lock | ||