← К списку версий
v0.28.0
11.08.2026
PATCH
«Актуальные данные по проекту»: синхронизация с платформой задач по кнопке
Точечная синхронизация проекта с платформы задач
- Страница проекта (`/admin/projects/{id}`): новый блок «Синхронизация с платформой задач» — ссылка на проект task-платформы (`task.ipd.test/project/{external_id}`), бейдж «Данные обновлены: дата/время» и кнопка **«Получить данные по проекту»**. Нажатие тянет с платформы задач актуальные данные конкретного проекта: описание, статус, прогресс, задачи (включая завершённые — полная история), шаги.
- Список проектов (`/admin/projects`): кнопка **«Получить данные по всем проектам»** — точечно синхронизирует каждый проект, привязанный к платформе задач (заполнен `external_id`), не создавая лишних проектов. В kebab-меню проекта добавлен пункт «Синхронизировать».
- Новый метод `SyncManager::executeProject()` фильтрует данные экспорта по `external_id` проекта, запрашивает `include_completed=1` (чтобы клиент видел историю — что сделано и когда), импортирует направление/проект/задачи/шаги и обновляет `last_synced_at`, `tasks_total`, `tasks_completed` проекта. `SyncManager::execute()` вынесен в общий `runImport()`.
- `importTasks`: задачи, уже привязанные к локальному проекту по `external_id`, обновляются даже когда в экспорте нет `project_name` (завершённые/архивные задачи) — их статус и шаги приводятся к актуальным. Новые задачи без проекта по-прежнему пропускаются.
- `PlatformRegistry::fetchData(..., ['include_completed' => true])` добавляет к экспорту `?include_completed=1`.
- Логи: синхронизация проекта пишется в историю проекта (`ActivityLog` с `project_id`).
- `APP_VERSION` изменён: `0.27.0` → `0.28.0` (`.env`, `.env.example`).
Автотесты
- `tests/Feature/ProjectTaskPlatformSyncFeatureTest.php`: точечная синхронизация проекта по кнопке (Http::fake — платформа задач), обновление прогресса и `last_synced_at`, импорт активных и завершённых задач, история для клиента (завершённые задачи не теряются), массовая синхронизация «по всем проектам».
Результат
- Кнопка «Получить данные» обновляет конкретный проект с платформы задач
- Массовая синхронизация по всем проектам одной кнопкой