Приложение Activities, системы Карта Успеха

Материал из m6a
Версия от 14:17, 30 марта 2025; Vshpagin (обсуждение | вклад) (Новая страница: «== Общее описание == Приложение `activities` отвечает за управление мероприятиями (активностям…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Общее описание

Приложение `activities` отвечает за управление мероприятиями (активностями) в системе "Карта успеха". Каждое мероприятие связано с задачей и имеет определенную продолжительность и временные интервалы.

Модель данных

Activity

  • (Опишите поля модели `Activity`, например:
    • `id` - Integer (Primary Key)
    • `task` - ForeignKey (связь с моделью Task)
    • `name` - CharField (название мероприятия)
    • `description` - TextField (описание)
    • `start_time` - DateTimeField (время начала)
    • `end_time` - DateTimeField (время окончания)
    • `duration` - IntegerField (длительность в минутах)
    • `status` - CharField (статус выполнения)

)

ActivityManager

  • (Опишите пользовательский менеджер для модели `Activity`, если он используется, например:
    • Методы для фильтрации активностей по времени, статусу и т.д.

)

Функциональность

Основные операции

  • Создание мероприятий
  • Редактирование мероприятий
  • Удаление мероприятий
  • Просмотр списка мероприятий
  • Просмотр деталей мероприятия

Управление временем

  • Планирование мероприятий
  • Фильтрация по времени
  • Расчет длительности
  • Управление интервалами

Дополнительные функции

  • Зависимости между мероприятиями
  • Массовое обновление интервалов
  • Календарное представление
  • Планировщик мероприятий

URL маршруты

  • (Перечислите URL маршруты приложения и их соответствие представлениям, например:
    • `/activities/` - Список мероприятий
    • `/activities/<int:pk>/` - Детали мероприятия
    • `/activities/create/` - Создание мероприятия
    • `/activities/<int:pk>/update/` - Редактирование мероприятия
    • `/activities/<int:pk>/delete/` - Удаление мероприятия
    • `/activities/calendar/` - Календарное представление мероприятий

)

Формы

ActivityForm

  • (Опишите поля формы `ActivityForm`, например:
    • `name` - CharField (поле для ввода названия)
    • `description` - TextField (поле для ввода описания)
    • `task` - ForeignKey (выбор задачи)
    • `start_time` - DateTimeField (поле для ввода времени начала)
    • `end_time` - DateTimeField (поле для ввода времени окончания)
    • `duration` - IntegerField (поле для ввода длительности)

)

Шаблоны

Основные шаблоны

  • `activity_list.html` - список мероприятий
  • `activity_detail.html` - детали мероприятия
  • `activity_form.html` - форма создания/редактирования
  • `update_interval.html` - форма обновления интервалов

Особенности шаблонов

  • Фильтрация мероприятий
  • Отображение длительности
  • Управление зависимостями
  • Навигация по хлебным крошкам

Тестирование

Модульные тесты

  • Создание мероприятия
  • Валидация времени
  • Расчет длительности
  • Управление зависимостями

Проверяемые аспекты

  • Корректность данных
  • Ограничения модели
  • Валидация полей
  • Связи с задачами

Безопасность

Защита

  • Декоратор `@login_required`
  • Валидация данных
  • Проверка прав доступа
  • CSRF защита

Валидация

  • Проверка времени
  • Валидация длительности
  • Обязательные поля
  • Форматы данных

Интеграция

С другими приложениями

  • Связь с задачами
  • Связь с ресурсами
  • Интеграция с пользователями

Сигналы

  • `post_save` - после сохранения
  • Обновление прогресса задачи
  • Расчет длительности мероприятия

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

Управление временем

  • Планировщик мероприятий
  • Фильтрация по времени
  • Расчет длительности
  • Управление интервалами

Отслеживание зависимостей

  • Ведущие мероприятия
  • Время на подготовку
  • Связи между мероприятиями
  • Обновление статусов

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

  • Описание
  • Интервал времени
  • Длительность
  • Статус выполнения