feat(sf): граддокументация (статус+ПАГЕ-реквизиты) из planning_projects в analyze (#1061) #1154

Merged
bot-reviewer merged 1 commit from feat/granddoc-status-lookup into main 2026-06-07 15:15:04 +00:00
Collaborator

Что сделано

  • Новый модуль granddoc_lookup.py: parcel_granddoc(db, parcel_wkt) — ST_Intersects к planning_projects, regex-парсинг ПАГЕ № + дата + предмет, is_active флаг, сортировка active-first / paga_date desc.
  • ird_analyze.py: block["granddoc"] = parcel_granddoc(db, geom_wkt) рядом с planning_projects/reservations. Docstring Returns обновлён.
  • Тесты test_granddoc_lookup.py (13 тестов) + 2 новых теста в test_ird_analyze.py. Все 31 тест зелёные.

Источник

planning_projects (на проде, 1170 строк). Без новых миграций.

Closes #1061

## Что сделано - Новый модуль `granddoc_lookup.py`: `parcel_granddoc(db, parcel_wkt)` — ST_Intersects к `planning_projects`, regex-парсинг ПАГЕ № + дата + предмет, `is_active` флаг, сортировка active-first / paga_date desc. - `ird_analyze.py`: `block["granddoc"] = parcel_granddoc(db, geom_wkt)` рядом с `planning_projects`/`reservations`. Docstring Returns обновлён. - Тесты `test_granddoc_lookup.py` (13 тестов) + 2 новых теста в `test_ird_analyze.py`. Все 31 тест зелёные. ## Источник `planning_projects` (на проде, 1170 строк). Без новых миграций. Closes #1061
bot-backend added 1 commit 2026-06-07 15:13:05 +00:00
feat(sf): граддокументация (статус+ПАГЕ-реквизиты) из planning_projects в analyze (#1061)
All checks were successful
CI / changes (push) Successful in 6s
CI / frontend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (push) Successful in 6m23s
CI / backend-tests (pull_request) Successful in 6m20s
015f63583a
lekss361 added the
GG-форсайт
scope/backend
site-finder
ИРД
labels 2026-06-07 15:13:28 +00:00
bot-reviewer approved these changes 2026-06-07 15:14:56 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — граддокументация (status+ПАГЕ) в analyze (закрывает #1061).

  • parcel_granddoc(db, geom_wkt) — ST_Intersects к planning_projects + regex-парсинг ПАГЕ + is_active + сортировка active-first/paga_date-desc. Ключ granddoc в DB-дешёвой секции, без signature-change.
  • _PAGA_RE = ПАГЕ\s*№\s*(\d+)\s+от\s+(\d{2})\.(\d{2})\.(\d{4})линейный, без вложенных квантификаторов → нет ReDoS (в отличие от #1131). _parse_paga graceful (ValueError на дате → None). Сортировка _neg_date sentinel корректна (active-first, свежие-первыми, None-дата в хвост).
  • _patch_overlay патчит parcel_granddoc→[] → existing тесты с object()-db не падают. 13 lookup + 2 analyze теста. graceful (Operational/ProgrammingError→[]), CAST psycopg v3.
  • Без миграции (planning_projects на проде, 1170). Разграничение с krt_requisites (#1131) задокументировано.

Merging (squash).


ℹ️ #1153 (OCR/PyMuPDF) остаётся needs-human+blocked — жду решения по AGPL-лицензии.

<!-- gendesign-review-bot: sha=015f635 verdict=approve --> ✅ **APPROVE** — граддокументация (status+ПАГЕ) в analyze (закрывает #1061). - `parcel_granddoc(db, geom_wkt)` — ST_Intersects к planning_projects + regex-парсинг ПАГЕ + is_active + сортировка active-first/paga_date-desc. Ключ `granddoc` в DB-дешёвой секции, без signature-change. - `_PAGA_RE` = `ПАГЕ\s*№\s*(\d+)\s+от\s+(\d{2})\.(\d{2})\.(\d{4})` — **линейный, без вложенных квантификаторов → нет ReDoS** (в отличие от #1131). `_parse_paga` graceful (ValueError на дате → None). Сортировка `_neg_date` sentinel корректна (active-first, свежие-первыми, None-дата в хвост). - `_patch_overlay` патчит `parcel_granddoc`→[] → existing тесты с object()-db не падают. 13 lookup + 2 analyze теста. graceful (Operational/ProgrammingError→[]), CAST psycopg v3. - Без миграции (planning_projects на проде, 1170). Разграничение с krt_requisites (#1131) задокументировано. Merging (squash). --- ℹ️ #1153 (OCR/PyMuPDF) остаётся `needs-human`+`blocked` — жду решения по AGPL-лицензии.
bot-reviewer merged commit fe67e60d48 into main 2026-06-07 15:15:04 +00:00
bot-reviewer deleted branch feat/granddoc-status-lookup 2026-06-07 15:15:04 +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#1154
No description provided.