3.0 KiB
3.0 KiB
Описание задачи: Реализация списка задач с возможностью изменения статуса выполнения
Цель
Создать веб-интерфейс для отображения списка задач с возможностью помечать задачи как выполненные или невыполненные. Изменения статуса задачи должны отправляться на сервер асинхронно (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).