Приложение Tasks, системы Карта Успеха
Материал из m6a
Версия от 14:11, 30 марта 2025; Vshpagin (обсуждение | вклад) (Новая страница: «== Общее описание == Приложение `tasks` отвечает за управление задачами в системе "Карта успе…»)
Содержание
Общее описание
Приложение `tasks` отвечает за управление задачами в системе "Карта успеха". Каждая задача связана с проектом и содержит набор мероприятий для её выполнения.
Модель данных
Task
- (Опишите поля модели `Task`, например:
- `id` - Integer (Primary Key)
- `project` - ForeignKey (связь с моделью Project)
- `name` - CharField (название задачи)
- `description` - TextField (описание)
- `deadline` - DateField (дата завершения)
- `completion_percentage` - IntegerField (процент завершенности, от 0 до 100)
)
Методы модели
- (Опишите методы модели `Task`, например:
- `clean()` - Валидация модели
- `calculate_progress()` - Расчет прогресса задачи на основе мероприятий
)
Функциональность
Основные операции
- Создание задач
- Редактирование задач
- Удаление задач
- Просмотр списка задач
- Просмотр деталей задачи
Управление статусом
- Фильтрация задач (срочные, активные, просроченные)
- Отслеживание прогресса
- Копирование задач
Дополнительные функции
- Расчет длительности мероприятий
- Управление мероприятиями
- Автоматическое обновление прогресса
URL маршруты
- (Перечислите URL маршруты приложения и их соответствие представлениям, например:
- `/tasks/` - Список задач
- `/tasks/<int:pk>/` - Детали задачи
- `/tasks/create/` - Создание задачи
- `/tasks/<int:pk>/update/` - Редактирование задачи
- `/tasks/<int:pk>/delete/` - Удаление задачи
- `/tasks/<int:pk>/copy/` - Копирование задачи
)
Формы
TaskForm
- (Опишите поля формы `TaskForm`, например:
- `name` - CharField (поле для ввода названия)
- `description` - TextField (поле для ввода описания)
- `project` - ForeignKey (выбор проекта)
- `deadline` - DateField (поле для ввода даты завершения)
- `completion_percentage` - IntegerField (поле для ввода процента завершенности)
)
CopyTaskForm
- (Опишите поля формы `CopyTaskForm`, необходимые для копирования задачи)
Шаблоны
Основные шаблоны
- `task_list.html` - список задач
- `task_detail.html` - детали задачи
- `task_form.html` - форма создания/редактирования
- `task_copy_form.html` - форма копирования задачи
Особенности шаблонов
- Фильтрация задач
- Отображение прогресса
- Управление мероприятиями
- Навигация по хлебным крошкам
Тестирование
Модульные тесты
- Создание задачи
- Валидация процента завершенности
- Расчет прогресса
- Копирование задач
Проверяемые аспекты
- Корректность данных
- Ограничения модели
- Валидация полей
- Связи с проектами
Безопасность
Защита
- Декоратор `@login_required`
- Валидация данных
- Проверка прав доступа
- CSRF защита
Валидация
- Проверка процентов
- Валидация дат
- Обязательные поля
- Форматы данных
Интеграция
С другими приложениями
- Связь с проектами
- Связь с мероприятиями
- Интеграция с пользователями
Сигналы
- `post_save` - после сохранения
- Обновление прогресса проекта
- Автоматический расчет процентов
Особенности реализации
Управление прогрессом
- Автоматический расчет
- Обновление связанных проектов
- Отслеживание мероприятий
Отслеживание времени
- Дедлайны
- Длительность мероприятий
- Копирование задач
Дополнительные поля
- Описание
- Связь с проектом
- Процент завершенности