feat(sf): вшить функц.зоны генплана (ekb_genplan_functional_zone) в analyze (#1058) #1140

Merged
bot-reviewer merged 1 commit from feat/functional-zone-wiring into main 2026-06-07 12:27:23 +00:00
Owner

Что

Завершает #1058: ИРД-блок analyze теперь отдаёт функц.зону генплана-2045 участка из БД (ekb_genplan_functional_zone, 6436 зон на проде) — заменяет stub functional_zone=None (раньше живой geoportal-вызов был отключён в #1115, т.к. муниципальный слой пуст; данные теперь из ГИСОГД-СО #1137).

Как

  • build_ird_analyze_block: block["functional_zones"] = parcel_functional_zones(db, geom_wkt) (list, DB ST_Intersects, graceful, в основном потоке).
  • block["functional_zone"] = первая зона|None (back-compat старого ключа dict|None).
  • Мёртвый stub-комментарий удалён; _functional_zone_at (живой geoportal) оставлен неиспользуемым.

Тест

test_ird_analyze.py14 passed (12 + 2 новых: functional_zones list + functional_zone первая/None).

Закрывает analyze-сторону #1058. ИРД-блок «волшебной таблицы» теперь полный (ЗОУИТ + genplan-зоны + КРТ + reservations + planning + ПЗЗ-регламент). Часть #1067.

## Что Завершает #1058: ИРД-блок analyze теперь отдаёт функц.зону генплана-2045 участка из БД (`ekb_genplan_functional_zone`, 6436 зон на проде) — заменяет stub `functional_zone=None` (раньше живой geoportal-вызов был отключён в #1115, т.к. муниципальный слой пуст; данные теперь из ГИСОГД-СО #1137). ## Как - `build_ird_analyze_block`: `block["functional_zones"]` = `parcel_functional_zones(db, geom_wkt)` (list, DB ST_Intersects, graceful, в основном потоке). - `block["functional_zone"]` = первая зона|None (back-compat старого ключа dict|None). - Мёртвый stub-комментарий удалён; `_functional_zone_at` (живой geoportal) оставлен неиспользуемым. ## Тест `test_ird_analyze.py` — **14 passed** (12 + 2 новых: functional_zones list + functional_zone первая/None). Закрывает analyze-сторону #1058. ИРД-блок «волшебной таблицы» теперь полный (ЗОУИТ + genplan-зоны + КРТ + reservations + planning + ПЗЗ-регламент). Часть #1067.
lekss361 added 1 commit 2026-06-07 12:23:22 +00:00
feat(sf): вшить функц.зоны генплана (ekb_genplan_functional_zone) в analyze (#1058)
All checks were successful
CI / changes (push) Successful in 7s
CI / frontend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (push) Successful in 6m28s
CI / backend-tests (pull_request) Successful in 6m25s
c15f3524bf
lekss361 added the
GG-форсайт
scope/backend
site-finder
labels 2026-06-07 12:23:33 +00:00
bot-reviewer approved these changes 2026-06-07 12:27:12 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — врезка функц.зон генплана в analyze (закрывает analyze-сторону #1058, реализует мой follow-up #1138 item 1).

Verified:

  • Нет signature-change → parcels.py не затронут. functional_zones (list) + functional_zone (first|None) — back-compat старого ключа (dict|None) сохранён.
  • parcel_functional_zones(db, geom_wkt) — DB ST_Intersects по полигону (не centroid), в DB-дешёвой секции (до geoportal-блока), graceful (#1137). Вычисляется безусловно (geom_wkt-based, не зависит от lon/lat).
  • Dead stub functional_zone=None внутри if-блока удалён корректно.
  • Тесты корректны: _patch_overlay теперь патчит parcel_functional_zones→[] (существующие тесты с object()-db не падают на AttributeError — важно, т.к. lookup ловит только Operational/ProgrammingError) + 2 новых (two-zones list+first / empty→[]/None).

Verified prod: ekb_genplan_functional_zone = 6436 зон (genplan sync прогнан после #1137) → фича работает на живых данных, не пустой stub.

ИРД «волшебная таблица» теперь полная: ЗОУИТ + genplan-зоны + КРТ-геометрия + КРТ-реквизиты + reservations + planning + ПЗЗ-регламент. Хорошая серия #1058/#1060/#1062/#1130.

Merging (squash). Остаток #1138 (per-batch commit durability harvest + vault) — не в этом PR.

<!-- gendesign-review-bot: sha=c15f352 verdict=approve --> ✅ **APPROVE** — врезка функц.зон генплана в analyze (закрывает analyze-сторону #1058, реализует мой follow-up #1138 item 1). **Verified:** - Нет signature-change → parcels.py не затронут. `functional_zones` (list) + `functional_zone` (first|None) — back-compat старого ключа (dict|None) сохранён. - `parcel_functional_zones(db, geom_wkt)` — DB ST_Intersects по полигону (не centroid), в DB-дешёвой секции (до geoportal-блока), graceful (#1137). Вычисляется безусловно (geom_wkt-based, не зависит от lon/lat). - Dead stub `functional_zone=None` внутри if-блока удалён корректно. - **Тесты корректны:** `_patch_overlay` теперь патчит `parcel_functional_zones`→[] (существующие тесты с `object()`-db не падают на AttributeError — важно, т.к. lookup ловит только Operational/ProgrammingError) + 2 новых (two-zones list+first / empty→[]/None). **Verified prod:** `ekb_genplan_functional_zone` = **6436 зон** (genplan sync прогнан после #1137) → фича работает на живых данных, не пустой stub. ИРД «волшебная таблица» теперь полная: ЗОУИТ + genplan-зоны + КРТ-геометрия + КРТ-реквизиты + reservations + planning + ПЗЗ-регламент. Хорошая серия #1058/#1060/#1062/#1130. Merging (squash). Остаток #1138 (per-batch commit durability harvest + vault) — не в этом PR.
bot-reviewer merged commit dc63173aba into main 2026-06-07 12:27:23 +00:00
bot-reviewer deleted branch feat/functional-zone-wiring 2026-06-07 12:27:23 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#1140
No description provided.