Приложение 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` - после сохранения
  • Обновление прогресса проекта
  • Автоматический расчет процентов

Особенности реализации

Управление прогрессом

  • Автоматический расчет
  • Обновление связанных проектов
  • Отслеживание мероприятий

Отслеживание времени

  • Дедлайны
  • Длительность мероприятий
  • Копирование задач

Дополнительные поля

  • Описание
  • Связь с проектом
  • Процент завершенности