О платформе Войти
← К списку версий
v0.26.0 09.08.2026 PATCH
Производство и статистика на панели управления; Системные подсказки на панели управления
Исправление: стабильный запуск полного набора тестов (`php artisan test` — 62/62)
  • Причина массовых падений: `phpunit.xml` использует `sqlite :memory:`. Часть тестов использовала трейт `DatabaseTransactions`, который получает пустую базу (схема создаётся только `RefreshDatabase`-тестами) — отсюда «no such table» при изолированном или переупорядоченном запуске (в т.ч. `ApiProjectApiTest`: 2 теста «no such table: api_keys»).
  • Исправление: тесты переведены на `RefreshDatabase` (со `$this->seed()` там, где нужны сидированные данные): `ApiProjectApiTest`, `ApiKeyTest`, `DesignSystemRenderTest`, `ManualTasksFeatureTest`, `ProjectOwnerRolesFeatureTest`, `ProjectSyncTest`, `TempAuthDiagTest`.
  • Исправлены устаревшие/ошибочные тесты:
  • Результат: `php artisan test` — 62 passed, 0 failed, 0 errors (273 assertions).
Разделение проектов на панели управления: «Производство» и «Статистика»
  • Главный раздел «Проекты (Производство)»: на панели управления (`/dashboard`) теперь основными показываются только активные проекты направления «Производство» (направление id=16, внешний id=11). Локально это Mysteria, Каменецкое благочиние, Алексей Гапеев.
  • Раздел «Статистика»: все остальные проекты (другие направления и паузы) вынесены в отдельный раздел ниже — они не засоряют главную ленту, но остаются полностью доступными.
  • Кнопка «Показать завершённые проекты (N)»: в разделе «Статистика» кнопка раскрывает архив завершённых проектов (статус `completed`) со значком «Завершён». Ничего не удаляется — все проекты остаются в системе и доступны через карточки.
  • Контроллер `Dashboard\DashboardController`: метод `splitProjects()` разделяет проекты на три группы — производственные активные, остальные и завершённые (определение направления «Производство» по `external_id = 11` или названию). Для админа список проектов больше не ограничен 20 — показываются все, чтобы раздел «Статистика» был полным.
  • Автотест `tests/Feature/DashboardProjectsSplitFeatureTest.php` (2 теста): разделение для админа (все проекты) и для клиента (собственные проекты), наличие секций и кнопки архива.
  • `APP_VERSION` изменён: `0.25.2` → `0.26.0` (`.env`, `.env.example`).
Исправление: русские названия проектов отображались «кракозябрами»
  • Причина: при создании дампа локальной БД использовался PowerShell-канал (`| Out-File` / `>`), который перекодировал вывод mysqldump через CP866 — UTF-8 байты ломались (двойная кодировка). Русские строки (проекты, задачи, клиенты) на staging (`my_ipd_dev_app`) и prod (`my_ipd_app`) оказались искажены.
  • Исправление: дамп создан через `cmd /c` (как в инструкции `03_Резервное_копирование_тестового_сайта.md`): `mysqldump --default-character-set=utf8mb4 --single-transaction --routines --triggers`. Обе БД пересозданы из корректного дампа локальной `my_ipd_local` — данные на staging и prod снова в правильном UTF-8.
  • `APP_VERSION` изменён: `0.26.0` → `0.25.2` (`.env`, `.env.example`).
Подсказки на панели управления
  • Новая секция «Системные подсказки» на панели управления (`/admin`): система сама подсказывает, что требует внимания и куда перейти.
  • Почта не настроена: если SMTP-сервер не подключён (пустой хост или отправитель) — подсказка «Почта не настроена» с переходом на вкладку «Почта» в настройках. После заполнения настроек SMTP подсказка исчезает.
  • Синхронизация: если синхронизация ещё ни разу не выполнялась — подсказка «Синхронизация ещё не выполнялась» с переходом на страницу синхронизации; если последняя синхронизация была более 7 дней назад — предупреждение «Данные могли устареть».
  • Что добавилось на последней синхронизации: из журнала активности разбирается статистика последнего импорта и показывается подсказка «Что добавилось на последней синхронизации» (сколько проектов/задач/шагов/клиентов добавлено и изменено).
  • Задачи ждут подтверждения: если у клиентов есть задачи в статусе «Ожидает подтверждения» — подсказка с их количеством и переходом к проектам.
  • Клиенты не подтвердили email: если есть клиенты без подтверждённого email — подсказка с переходом к списку клиентов.
  • Сервис `AdminDashboardHintsService` формирует подсказки (уровень: danger/warning/success/info, текст, ссылка-действие).
  • Автотест `tests/Feature/AdminDashboardHintsFeatureTest.php` (9 тестов): каждая подсказка, скрытие при решённой проблеме и рендер секции на дашборде.
  • `APP_VERSION` изменён: `0.25.1` → `0.26.0` (`.env`, `.env.example`).
Результат
  • На панели управления разделены «Производство» и «Статистика»
  • Активные проекты — впереди, архив — по кнопке