AURORA-1881: фильтры и сортировка в окне «Этапы» (поверх #317) #319

Open
aep wants to merge 11 commits from feat/318-aurora-1881-stages-filters into test

11 Commits

Author SHA1 Message Date
Andrey Epifancev
f05ac656b9 Merge branch 'feat/316-aurora-1880-stages-direction-ui' into feat/318-aurora-1881-stages-filters 2026-11-11 19:37:02 +04:00
Andrey Epifancev
cd15424778 Merge branch 'feat/312-aurora-1879-form-phase-direction' into feat/316-aurora-1880-stages-direction-ui 2026-11-11 19:37:02 +04:00
Andrey Epifancev
7a5c89eca6 AURORA-1879: миграция 0059 → 0060 (0059 занята AURORA-1984, PR #306)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 19:36:40 +04:00
Andrey Epifancev
525f801187 Merge remote-tracking branch 'origin/test' into feat/312-aurora-1879-form-phase-direction 2026-11-11 19:35:11 +04:00
Andrey Epifancev
59f9ebdafe feat(stages): фильтры и сортировка в окне «Этапы» (AURORA-1881)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:10:17 +04:00
Andrey Epifancev
63c368902b feat(stages): чистые функции фильтрации и сортировки этапов, now в getStageStatus (AURORA-1881)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:09:56 +04:00
Andrey Epifancev
5e364ac807 fix(stages): направление в строке этапа и в подтверждении удаления, удаление этапа формы для админа (AURORA-1880)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:05:09 +04:00
Andrey Epifancev
af44b98d7a fix(stages): этап определяется по листу, направлению и названию; кодирование пути и direction в params (AURORA-1880)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:05:09 +04:00
Andrey Epifancev
8798f092c4 fix(stages): именованный dollar-тег в DO-блоке 0059, правка интеграционных тестов этапов (AURORA-1879)
- sql_migration._split_statements узнаёт только $tag$, пустой $$ ломал разбиение:
  DO $$ … $$ → DO $do$ … $do$.
- test_form_phases_delete_removes_only_named_phase: ?sheet= без direction
  фильтрует direction IS NULL — читаем весь список и отбираем AHR в тесте.
- test_form_phases_duplicate_without_direction_rejected: после ошибки
  сессия клиента откатывается, число строк не проверяем; защиту БД
  проверяет новый test_form_phase_nodir_unique_index_blocks_duplicate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:53:42 +04:00
Andrey Epifancev
92f6049a73 fix(stages): FormPhaseService.create отклоняет дубль этапа на листе и направлении (AURORA-1879)
Интеграционные тесты одноимённых этапов, PATCH/DELETE одного этапа, дубль без направления, direction в аудите.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:39:24 +04:00
Andrey Epifancev
9e15fad226 fix(stages): direction в первичном ключе ORM FormPhase, детерминированный порядок списка, миграция 0059 (AURORA-1879)
- ORM: direction входит в PK (nullable), одноимённые этапы Support/Development больше не склеиваются
- get_list: ORDER BY sheet, direction (NULL первыми), opens_at, phase_code
- 0059: del_form_phase фильтрует по phase_code, direction в v_phase_id (add/upd/del) и в payload upd,
  чистка дублей без направления и частичный уникальный индекс form_phase_nodir_uidx

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:39:24 +04:00