feat: ревью-инструмент авто-маппингов Объектив↔ДОМ.РФ (/admin/mapping-review) #2278

Merged
bot-backend merged 2 commits from feat/mapping-review-page into main 2026-07-03 07:59:14 +00:00
Collaborator

Что

Инструмент ручного ревью авто-маппингов objective_domrf_mapping (после autofill-волны #2177: ~170 строк is_reviewed=false, включая 14 ambiguous — им нужен глаз).

Backend

  • app/services/etl/mapping_review.py:
    • list_mapping_review — постраничный список unreviewed с LATERAL-обогащением (последний снапшот domrf + developers, scoped по project_name = objective_complex_name — без глобальных агрегатов);
    • approve_mappingis_reviewed=true + append в note;
    • reject_mapping — DELETE по PK с RETURNING: полная строка логируется (до commit) и эхом в ответе — ручной re-INSERT возможен из лога. Удаление обязано быть DELETE: строка иначе продолжает питать mv_layout_velocity §4.2.
  • 3 endpoint'а в admin_etl.py (GET list / POST approve / POST reject), за общим Caddy basic_auth.

Frontend

  • /admin/mapping-review — таблица с warn-подсветкой строк, где ядро имени Объектива ≠ ядру ДОМ.РФ; confirm-модалка на reject («сделки исчезнут из §4.2»); пагинация; таб в admin layout.

Ревью

code-reviewer: APPROVE (minor: лог перенесён до commit — учтено). 10 тестов passed, ruff/tsc/eslint clean, CAST-trap grep clean.

## Что Инструмент ручного ревью авто-маппингов `objective_domrf_mapping` (после autofill-волны #2177: ~170 строк `is_reviewed=false`, включая 14 ambiguous — им нужен глаз). ### Backend - `app/services/etl/mapping_review.py`: - `list_mapping_review` — постраничный список unreviewed с LATERAL-обогащением (последний снапшот domrf + developers, scoped по `project_name = objective_complex_name` — без глобальных агрегатов); - `approve_mapping` — `is_reviewed=true` + append в note; - `reject_mapping` — DELETE по PK с RETURNING: полная строка логируется (до commit) и эхом в ответе — ручной re-INSERT возможен из лога. Удаление обязано быть DELETE: строка иначе продолжает питать `mv_layout_velocity` §4.2. - 3 endpoint'а в `admin_etl.py` (GET list / POST approve / POST reject), за общим Caddy basic_auth. ### Frontend - `/admin/mapping-review` — таблица с warn-подсветкой строк, где ядро имени Объектива ≠ ядру ДОМ.РФ; confirm-модалка на reject («сделки исчезнут из §4.2»); пагинация; таб в admin layout. ## Ревью code-reviewer: ✅ APPROVE (minor: лог перенесён до commit — учтено). 10 тестов passed, ruff/tsc/eslint clean, CAST-trap grep clean.
bot-backend added 1 commit 2026-07-03 07:38:52 +00:00
feat: mapping-review tool — list/approve/reject auto-mappings + admin page
Some checks failed
CI Trade-In / changes (pull_request) Successful in 12s
CI / changes (pull_request) Successful in 12s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m40s
CI / openapi-codegen-check (pull_request) Failing after 2m45s
CI / backend-tests (pull_request) Successful in 15m13s
959fc8e7bf
- backend: mapping_review.py (list с LATERAL-обогащением domrf+developers,
  approve = is_reviewed+note, reject = DELETE по PK с RETURNING-логом)
- 3 endpoint'а в admin_etl.py (GET list / POST approve / POST reject)
- frontend: /admin/mapping-review — таблица с warn-подсветкой несовпадающих
  ядер, confirm-модалка на reject, пагинация; таб в admin layout
- 10 тестов (happy/404/null-score)
Light1YT added 1 commit 2026-07-03 07:43:36 +00:00
chore: regen api-types.ts for mapping-review endpoints
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 6s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m29s
CI / openapi-codegen-check (pull_request) Successful in 2m14s
CI / backend-tests (pull_request) Successful in 14m49s
08a29ac13f
bot-backend merged commit dfc1ee8be0 into main 2026-07-03 07:59:14 +00:00
bot-backend deleted branch feat/mapping-review-page 2026-07-03 07:59:14 +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#2278
No description provided.