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
).