feat(exporters): зеркалим permits_nearby (ГИСОГД 500м) в DOCX §6 #2421

Merged
bot-backend merged 1 commit from feat/docx-permits-nearby-mirror into main 2026-07-04 13:28:01 +00:00
Collaborator

Что

Найдено при регресс-прогоне полного отчёта на прод-участке: раздел «Разрешения на строительство рядом (500 м)» (ГИСОГД-66, #2367) есть в PDF, но отсутствовал в DOCX — сознательное сужение границ прошлого PR (#2401), теперь закрыто.

Портирован 1-в-1 из уже прод-verified HTML-хелпера _build_permits_nearby: та же честная плашка полным предложением при total_count<=0, те же поля (rs_count/rv_count/nearest_distance_m/items[:10]), тот же кап на 10 записей. Использует существующие DOCX-хелперы (_add_kv_table/_add_data_table/_add_caveat) и общие PURE-форматтеры (_fmt/_fmt_int_ru), которые уже шарятся между HTML и DOCX — без дублирования логики.

_build_section_6 получила третий параметр result (analyze-payload) — новый параметр самой build_full_report_docx не понадобился, она уже нормализует analyze_result в result = _as_dict(analyze_result).

Проверки

  • 21 тест зелёный (13 существующих + 8 новых: honest-zero, non-empty с RS/RV, cap-at-10 со структурной проверкой границы среза, wiring, e2e через build_full_report_docx)
  • code-reviewer: APPROVE — построчно сверил логическую эквивалентность с HTML-оригиналом, defensive-handling None/нечисловых полей, wiring через существующую нормализацию
  • ruff чисто, HTML-версия не тронута (только читалась как эталон)

Post-merge

Регенерирую полный DOCX-отчёт на том же участке (66:45:0200124:343, где уже проверил PDF) — раздел разрешений должен появиться в тексте документа.

Refs #2367

## Что Найдено при регресс-прогоне полного отчёта на прод-участке: раздел «Разрешения на строительство рядом (500 м)» (ГИСОГД-66, #2367) есть в PDF, но отсутствовал в DOCX — сознательное сужение границ прошлого PR (#2401), теперь закрыто. Портирован 1-в-1 из уже прод-verified HTML-хелпера `_build_permits_nearby`: та же честная плашка полным предложением при `total_count<=0`, те же поля (rs_count/rv_count/nearest_distance_m/items[:10]), тот же кап на 10 записей. Использует существующие DOCX-хелперы (`_add_kv_table`/`_add_data_table`/`_add_caveat`) и общие PURE-форматтеры (`_fmt`/`_fmt_int_ru`), которые уже шарятся между HTML и DOCX — без дублирования логики. `_build_section_6` получила третий параметр `result` (analyze-payload) — новый параметр самой `build_full_report_docx` не понадобился, она уже нормализует `analyze_result` в `result = _as_dict(analyze_result)`. ## Проверки - 21 тест зелёный (13 существующих + 8 новых: honest-zero, non-empty с RS/RV, cap-at-10 со структурной проверкой границы среза, wiring, e2e через build_full_report_docx) - code-reviewer: ✅ APPROVE — построчно сверил логическую эквивалентность с HTML-оригиналом, defensive-handling None/нечисловых полей, wiring через существующую нормализацию - ruff чисто, HTML-версия не тронута (только читалась как эталон) ## Post-merge Регенерирую полный DOCX-отчёт на том же участке (66:45:0200124:343, где уже проверил PDF) — раздел разрешений должен появиться в тексте документа. Refs #2367
bot-backend added 1 commit 2026-07-04 13:12:28 +00:00
feat(exporters): зеркалим permits_nearby (ГИСОГД 500м) в DOCX §6
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m57s
CI / backend-tests (pull_request) Successful in 14m41s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
e626a544aa
DOCX полного отчёта не показывал блок «Разрешения на строительство
рядом», который уже есть в PDF/HTML (#2367) — сознательное сужение
границ в #2401. Портирован 1-в-1: та же честная плашка при total_count<=0,
те же поля, тот же кап на 10 записей — через существующие DOCX-хелперы
(_add_kv_table/_add_data_table/_add_caveat), без дублирования логики
(общие PURE-форматтеры _fmt/_fmt_int_ru шарятся с HTML-версией).

_build_section_6 расширена третьим параметром result (analyze-payload,
уже нормализован в build_full_report_docx как _as_dict(analyze_result) —
новый параметр функции не понадобился).

Refs #2367
bot-backend merged commit 27868a4d2e into main 2026-07-04 13:28:01 +00:00
bot-backend deleted branch feat/docx-permits-nearby-mirror 2026-07-04 13:28:01 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2421
No description provided.