app/TASK.md
2025-09-03 20:12:46 +03:00

3.0 KiB
Raw Blame History

Описание задачи: Реализация списка задач с возможностью изменения статуса выполнения

Цель

Создать веб-интерфейс для отображения списка задач с возможностью помечать задачи как выполненные или невыполненные. Изменения статуса задачи должны отправляться на сервер асинхронно (AJAX) и сохраняться в кеше.

Основные требования

К редактированию доступны только файлы models/Task.php и views/task/index.php.

  • Задача содержит поля:
    • id — уникальный идентификатор задачи.
    • order — порядок сортировки.
    • title — название задачи.
    • checked — булево значение, указывающее, выполнена задача или нет.
  • Изначальные данные хранятся в константе INIT_DATA.
  • Данные загружаются и сохраняются в кеш приложения (Yii::$app->cache).
  • Необходимо реализовать методы:
    • search($params)
    • save() — сохраняет текущий объект задачи в кеш.
    • findOne($id) — возвращает задачу по идентификатору.
  • Валидация поля checked как булевого значения.
  • Определены метки атрибутов для отображения в интерфейсе.

Представление (index.php)

  • Отображает список задач в виде таблицы с помощью GridView.
  • Колонки таблицы:
    • id — идентификатор задачи.
    • title — название задачи.
    • checked — чекбокс, отражающий статус выполнения задачи.
  • При изменении состояния чекбокса отправляется AJAX POST-запрос на \app\controllers\TaskController::actionSetState.
  • В случае ошибки запроса состояние чекбокса восстанавливается.

Технические детали

  • Данные задач не хранятся в базе, а кэшируются в памяти приложения.
  • Сортировка задач происходит по полю order в порядке возрастания.
  • AJAX-запросы позволяют обновлять статус задачи без перезагрузки страницы.
  • Валидация и сохранение данных реализованы в модели Task.
  • Представление использует стандартные компоненты Yii2 (GridView, ArrayDataProvider).