← К списку версий
v0.96.2
06.10.2026
PATCH
Категории проектов: постоянные адреса разделов и статусов
ТЗ 284 «Категории проектов». Раздел проектов жил на одном адресе /admin/projects с параметром ?scope=all|clients|mine — состояние страницы нельзя было запомнить, отправить в ссылке или открыть в новой вкладке. Теперь у каждой категории свой постоянный адрес: /admin/projects (вход — клиентские активные, как раньше), /admin/projects/clients|all|mine и /admin/projects/clients|all|mine/active|completed|all (например /admin/projects/clients/completed — завершённые клиентские). Сверху два ряда вкладок: разделы и статусы, каждый со своим счётчиком; счётчики считаются в рамках выбранного раздела до применения статуса, поэтому «Клиентские · завершённые · 7» честно показывает, сколько станет после клика. Старые ссылки ?scope=X ведут на постоянный адрес того же раздела, поиск/сортировка/пагинация остаются параметрами и не меняют адрес. Версия v0.96.2.
Что сделано
- Постоянные адреса - /admin/projects — вход (клиентские активные), /admin/projects/clients|all|mine — раздел, /admin/projects/<раздел>/<статус> — раздел со статусом: active (все, кроме закрытых — completed+archived), completed (завершённые и архив), all (все статусы). Адрес полностью описывает страницу — его можно запомнить, отправить и открыть в новой вкладке.
- Два ряда вкладок - Первый ряд — разделы (Клиентские / Все проекты / Мои), второй — статусы (Активные / Завершённые / Все) с числом проектов рядом с подписью. Счётчики статусов считаются в рамках выбранного раздела, счётчики разделов — в рамках выбранного статуса; каждая ссылка собирается из текущих фильтров, поэтому ни один выбор не сбрасывает другой.
- Заголовок и пустой список - Заголовок страницы называет выбранное состояние («Проекты клиентов · завершённые»), а пустой список объясняет, чего именно нет («В этом разделе нет завершённых проектов») вместо безликого «Ничего не найдено».
- Старые ссылки не ломаются - ?scope=all и другие прежние адреса редиректом уходят на постоянный адрес того же раздела, остальные параметры (поиск, сортировка, размер страницы) сохраняются; неизвестный раздел или статус — 404.
Проверено
- Тесты - tests/Feature/AdminProjectAddressesTest.php — 8 тестов: корень открывает клиентские активные, адреса разделов и статусов работают, вкладки — ссылки без «?», фильтры едут параметрами, счётчики соответствуют разделу, неизвестные адреса — 404, ?scope ведёт на постоянный адрес. Обновлён AdminProjectsScopeTest. Полный прогон платформы: 471 тест, 470 пройдено, 1 условно пропущен.
- Версия платформы - Поднята до v0.96.2: config/app.php, APP_VERSION в .env и .env.example; VersionSeeder — v0.96.2 актуальная. VersionFeatureTest и SeederKeepsWorkingDataCleanTest проходят.
Результат
- Администратор открывает нужную категорию проектов по постоянному адресу — например, /admin/projects/clients/completed — видит честные счётчики в обеих строках вкладок и сохраняет поиск и сортировку при переходе между категориями.