AURORA-1885: админ получает ВСП по id включая удалённые; прошедшая дата закрытия сразу закрывает ВСП #328

Merged
aep merged 1 commits from feat/327-aurora-1885-vsp-get-and-close into test 2026-11-12 16:02:13 +03:00
Owner

Closes #327. Jira: AURORA-1885 (эпик AURORA-1876, замечание №3). Разблокирует AURORA-1883 и AURORA-1886.

Что исправлено

  • А. Админ получал 404 на действующий ВСП по id (а в журнале аудита поле «ВСП» показывало «—»). VSPRepository.get: при with_deleted=True условие is_deleted IS TRUE искало только удалённые. Теперь with_deleted значит «включая удалённые»: условие is_deleted = false добавляется только при with_deleted=False.
  • Б. Прошедшая дата закрытия не закрывала ВСП сразу. VSPService.update читал data["close_date"], а VSPUpdate.model_dump() отдаёт ключ closed_at (close_date — только входной alias). Теперь сравнивается новая дата: при closed_at <= today уходит is_active=false.

Вызовов vsp_repo.get два: VSPService.get (админ — включая удалённые, исполнитель — только неудалённые своих ССП) и VSPService.update (без with_deleted — удалённые по-прежнему не редактируются, 404). Миграции нет.

Тесты

  • api/tests/integration/test_vsp.py +4: админ GET действующего → 200; админ GET удалённого → 200, is_deleted=true; исполнитель GET удалённого → 404; PUT close_date = вчера → is_active=false и ВСП пропадает из GET /dict/info.
  • api/tests/unit/test_vsp_service_close_date.py (новый): прошедшая дата → is_active=False в repository.update, будущая → ключа нет.
  • Полный backend: 906 passed / 10 failed — те же 10 известных падений чистой test (form3 add_project, satellite spod ×3, upd_form_cells_subtree ×3, 0037_guard, export_service_query_params ×2), новых нет.

Наблюдения

  • O-1: удалённый ВСП админ теперь видит по id, но править его нельзя (update → 404) — так задумано, фронту на будущее (AURORA-1883/1884).

Rulings I made

  • нет

🤖 Generated with Claude Code

Closes #327. Jira: AURORA-1885 (эпик AURORA-1876, замечание №3). Разблокирует AURORA-1883 и AURORA-1886. ## Что исправлено - **А. Админ получал 404 на действующий ВСП по id** (а в журнале аудита поле «ВСП» показывало «—»). `VSPRepository.get`: при `with_deleted=True` условие `is_deleted IS TRUE` искало только удалённые. Теперь `with_deleted` значит «включая удалённые»: условие `is_deleted = false` добавляется только при `with_deleted=False`. - **Б. Прошедшая дата закрытия не закрывала ВСП сразу.** `VSPService.update` читал `data["close_date"]`, а `VSPUpdate.model_dump()` отдаёт ключ `closed_at` (`close_date` — только входной alias). Теперь сравнивается новая дата: при `closed_at <= today` уходит `is_active=false`. Вызовов `vsp_repo.get` два: `VSPService.get` (админ — включая удалённые, исполнитель — только неудалённые своих ССП) и `VSPService.update` (без `with_deleted` — удалённые по-прежнему не редактируются, 404). Миграции нет. ## Тесты - `api/tests/integration/test_vsp.py` +4: админ GET действующего → 200; админ GET удалённого → 200, `is_deleted=true`; исполнитель GET удалённого → 404; PUT `close_date` = вчера → `is_active=false` и ВСП пропадает из `GET /dict/info`. - `api/tests/unit/test_vsp_service_close_date.py` (новый): прошедшая дата → `is_active=False` в `repository.update`, будущая → ключа нет. - Полный backend: 906 passed / 10 failed — те же 10 известных падений чистой test (form3 add_project, satellite spod ×3, upd_form_cells_subtree ×3, 0037_guard, export_service_query_params ×2), новых нет. ## Наблюдения - O-1: удалённый ВСП админ теперь видит по id, но править его нельзя (update → 404) — так задумано, фронту на будущее (AURORA-1883/1884). ## Rulings I made - нет 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 1 commit 2026-11-12 10:13:04 +03:00
- VSPRepository.get: with_deleted=True означает «включая удалённые», а не «только удалённые»
- VSPService.update: ключ closed_at (имя поля модели) вместо close_date (входной alias)
- тесты: integration test_vsp.py, unit test_vsp_service_close_date.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep requested review from tsygankoviva 2026-11-12 10:43:49 +03:00
Author
Owner

Замечание Цыганкова к vsp_repository.py:36 оставлено в #331, но эта строка из этого PR (коммит 744b71f). Ответ (H-1, код не меняется): #331 (comment)

Замечание Цыганкова к `vsp_repository.py:36` оставлено в #331, но эта строка из этого PR (коммит 744b71f). Ответ (H-1, код не меняется): https://git.aepif.ru/RSHB/DFiP_Budget_planing/pulls/331#issuecomment-9633
Owner

Надо ли учитывать часовой пояс ВСП и вообще есть ли он у него?

Надо ли учитывать часовой пояс ВСП и вообще есть ли он у него?
tsygankoviva approved these changes 2026-11-12 15:22:13 +03:00
aep merged commit 5009dc114c into test 2026-11-12 16:02:13 +03:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/DFiP_Budget_planing#328
No description provided.