AURORA-1881: фильтры и сортировка в окне «Этапы» (поверх #317) #319
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/318-aurora-1881-stages-filters"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #318. Jira: AURORA-1881 (замечание Фомичева №2, эпик AURORA-1876).
Ветка поверх #317 (AURORA-1880), который поверх #315 (AURORA-1879). Порядок мержа: #315 → #317 → этот PR. Собственные коммиты:
63c3689,59f9ebd.Что сделано
Stages/stageFilters.js(чистые функции):filterStages(stages, filters, now)— лист+направление ('AHR|Development','OPER|'), роль, статус, поиск по названию (без учёта регистра, «ё» = «е»);sortStages(stages, sheetOrder)— листы в порядке вкладок задачи, затем «Поддержка», «Развитие», без направления, затем дата открытия, затем название.StagesTable/utils.js:getStageStatus(stage, now = new Date())— необязательныйnowдля тестов, существующие вызовы не изменились.Stages/StagesFilters.jsx: поиск, «Лист» (варианты из вкладок задачи с направлением: «АХР — Поддержка»), «Роль» (только админу), «Статус» (Запланирован / Активен / Завершен / Не определен), «Сбросить».SettingModal.jsx: фильтры сбрасываются при закрытии окна; в таблицу идёт отсортированный и отфильтрованный список; пустой результат — «По выбранным фильтрам этапы не найдены»; в режиме project фильтр листа скрыт.Проверка
node --test src/components/Stages/*.test.js src/api/*.test.js src/components/RealtimeTable/utils/*.test.js— 181/181 (новыйstageFilters.test.jsбыл красным до реализации).npm run build— успешно.biome check: новые файлы чистые; по изменённым старым — 5 ошибок до и 5 после.TaskPageпередаёт в окноsheets = tablesвида{name, sheet, direction}изTasksApi.getSheets— фильтр листа получает направления.Rulings I made
StagesTable/utils.jsбез импортов, грузится вnode --testкак есть —getStageStatusне выносился.sheets— в конце; этапы безopens_at— последними в группе; название —localeCompare('ru').phase_code(единственное название этапа), нормализация trim + нижний регистр + «ё»→«е».SettingModal, сброс приisOpen=false; сортировка всегда, фильтр после неё.Findings
63c3689/59f9ebd59f9ebdtransformToSheetOptionsв SettingModal схлопывает листы поsheetдля AddStagesModal (старое поведение)allStages = stagesInfo.stages || []пересоздаётся при каждом рендере до загрузки — лишний пересчёт memoSettingModal(импорт под именемSettingStageModal)sheetsпередаются🤖 Generated with Claude Code
В ветку влит обновлённый #315 (миграция 1879 перенумерована 0059 → 0060, 7a5c89e; заодно свежий test
f047031). Изменений в коде этого PR нет. Проверка вершины стека: front 296 pass / 1 известное падение SMETA.test.js, build ок, biome без новых ошибок.