feat(sf): вшить parcel_reservations в ИРД-блок analyze (#1062, #1091) #1127

Merged
bot-reviewer merged 1 commit from feat/ird-reservation-wiring into main 2026-06-07 11:09:26 +00:00
Owner

Что

Завершает #1091/#1062: lookup изъятия/резервирования (parcel_reservations, таблица land_reservation из #1118) теперь отдаётся в ИРД-блоке /analyze.

Как

  • build_ird_analyze_block получила параметр cad_num: str | None; block["reservations"] = parcel_reservations(db, cad_num) рядом с planning_projects (DB, дёшево, graceful — НЕ в geoportal-конкурентной части).
  • Call-site parcels.py передаёт cad_num.
  • Docstring Returns дополнен.

Тест

test_ird_analyze.py9 passed (7 существующих concurrency-тестов из #1123 + 2 новых: проброс reservations, graceful при cad_num=None).

Закрывает analyze-сторону #1062/#1091. Часть #1067. (Данные в land_reservation появятся после прогона ingest_reservations с подтверждённым URL 509-ПП — отдельно.)

## Что Завершает #1091/#1062: lookup изъятия/резервирования (`parcel_reservations`, таблица `land_reservation` из #1118) теперь отдаётся в ИРД-блоке `/analyze`. ## Как - `build_ird_analyze_block` получила параметр `cad_num: str | None`; `block["reservations"] = parcel_reservations(db, cad_num)` рядом с `planning_projects` (DB, дёшево, graceful — НЕ в geoportal-конкурентной части). - Call-site `parcels.py` передаёт `cad_num`. - Docstring Returns дополнен. ## Тест `test_ird_analyze.py` — **9 passed** (7 существующих concurrency-тестов из #1123 + 2 новых: проброс reservations, graceful при cad_num=None). Закрывает analyze-сторону #1062/#1091. Часть #1067. (Данные в `land_reservation` появятся после прогона `ingest_reservations` с подтверждённым URL 509-ПП — отдельно.)
lekss361 added 1 commit 2026-06-07 11:02:55 +00:00
feat(sf): вшить parcel_reservations в ИРД-блок analyze (#1062, #1091)
All checks were successful
CI / changes (push) Successful in 8s
CI / changes (pull_request) Successful in 7s
CI / backend-tests (push) Successful in 6m30s
CI / backend-tests (pull_request) Successful in 6m27s
d3aa396ceb
lekss361 added the
GG-форсайт
scope/backend
site-finder
labels 2026-06-07 11:03:34 +00:00
bot-reviewer approved these changes 2026-06-07 11:09:19 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — wiring parcel_reservations в ИРД-блок (3 файла, backward-compatible).

Signature change безопасен (grep-callers выполнен): cad_num: str | None = None добавлен ПЕРЕД * с дефолтом → ни один существующий вызов не ломается:

  • parcels.py call-site обновлён (передаёт cad_num позиционно) ✓
  • concurrency-тесты из #1123 зовут с 4 позиционными арг (cad_num дефолтится None) → работают ✓
  • endpoint-тесты #1115 мокают build_ird_analyze_block → не затронуты ✓
  • client keyword-only (после *) → никто не передаёт его позиционно, коллизии нет.

Размещение корректно: parcel_reservations(db, cad_num) в DB-дешёвой секции (рядом с planning_projects), НЕ в geoportal-конкурентной части (#1123) — правильно, это DB-lookup. Graceful (OperationalError/ProgrammingError→[]). reservations всегда в block-dict (well-formed даже при lon/lat=None).

Verified prod: land_reservation задеплоена (#1118 merged, миграция 136 применена); колонки reservation_kind/basis_act/act_number/act_date/purpose/doc_url присутствуют → lookup работает (пусто пока данных нет — ingest_reservations ещё не прогнан, но без ошибки).

Тесты: _patch_overlay теперь патчит parcel_reservations (существующие тесты не ходят в реальный lookup) + 2 новых (проброс / cad_num=None graceful). Закрывает analyze-сторону #1062/#1091.

Merging (squash).

<!-- gendesign-review-bot: sha=d3aa396 verdict=approve --> ✅ **APPROVE** — wiring `parcel_reservations` в ИРД-блок (3 файла, backward-compatible). **Signature change безопасен (grep-callers выполнен):** `cad_num: str | None = None` добавлен ПЕРЕД `*` с дефолтом → ни один существующий вызов не ломается: - `parcels.py` call-site обновлён (передаёт `cad_num` позиционно) ✓ - concurrency-тесты из #1123 зовут с 4 позиционными арг (`cad_num` дефолтится None) → работают ✓ - endpoint-тесты #1115 **мокают** `build_ird_analyze_block` → не затронуты ✓ - `client` keyword-only (после `*`) → никто не передаёт его позиционно, коллизии нет. **Размещение корректно:** `parcel_reservations(db, cad_num)` в DB-дешёвой секции (рядом с `planning_projects`), НЕ в geoportal-конкурентной части (#1123) — правильно, это DB-lookup. Graceful (OperationalError/ProgrammingError→[]). `reservations` всегда в block-dict (well-formed даже при lon/lat=None). **Verified prod:** `land_reservation` задеплоена (#1118 merged, миграция 136 применена); колонки `reservation_kind/basis_act/act_number/act_date/purpose/doc_url` присутствуют → lookup работает (пусто пока данных нет — `ingest_reservations` ещё не прогнан, но без ошибки). Тесты: `_patch_overlay` теперь патчит `parcel_reservations` (существующие тесты не ходят в реальный lookup) + 2 новых (проброс / cad_num=None graceful). Закрывает analyze-сторону #1062/#1091. Merging (squash).
bot-reviewer merged commit d9b92f19f4 into main 2026-06-07 11:09:26 +00:00
bot-reviewer deleted branch feat/ird-reservation-wiring 2026-06-07 11:09:27 +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#1127
No description provided.