Приложение Goals, системы Карта Успеха
Материал из m6a
Содержание
Общее описание
Приложение `goals` отвечает за управление целями пользователя в системе "Карта успеха". Каждая цель связана с жизненной потребностью и имеет свой приоритет и процент выполнения.
Модель данных
Goal
class Goal(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='goals') life_need = models.ForeignKey(LifeNeed, on_delete=models.CASCADE, related_name='goals') name = models.CharField(max_length=100) description = models.TextField(blank=True) completion_percentage = models.IntegerField(default=0) priority = models.IntegerField()
Методы модели
- (Опишите методы модели `Goal`, например:
- `clean()` - Валидация модели
)
Функциональность
Основные операции
- Создание целей
- Редактирование целей
- Удаление целей
- Просмотр списка целей
- Просмотр деталей цели
Управление приоритетами
- Повышение приоритета
- Понижение приоритета
- Автоматическое назначение приоритета при создании
Дополнительные функции
- Отслеживание процента выполнения
- Связь с проектами
- Расчет длительности мероприятий
URL маршруты
- (Перечислите URL маршруты приложения и их соответствие представлениям, например:
- `/goals/` - Список целей
- `/goals/<int:pk>/` - Детали цели
- `/goals/create/` - Создание цели
- `/goals/<int:pk>/update/` - Обновление цели
- `/goals/<int:pk>/delete/` - Удаление цели
)
Формы
GoalForm
- (Опишите поля формы `GoalForm`, например:
- `name` - CharField (поле для ввода названия)
- `description` - TextField (поле для ввода описания)
- `life_need` - ForeignKey (выбор жизненной потребности)
- `completion_percentage` - IntegerField (поле для ввода процента выполнения)
)
Валидация
- Проверка обязательных полей
- Валидация описания (минимум 10 символов)
- Проверка процента выполнения
Шаблоны
Основные шаблоны
- `goal_list.html` - список целей
- `goal_detail.html` - детали цели
- `goal_form.html` - форма создания/редактирования
Особенности шаблонов
- Навигация по хлебным крошкам
- Табличное отображение данных
- Кнопки управления приоритетом
- Формы с валидацией
Тестирование
Модульные тесты
- Создание цели
- Валидация процента выполнения
- Проверка уникальности приоритета
- Тест обязательных полей
Проверяемые аспекты
- Корректность данных
- Ограничения модели
- Валидация полей
- Связи с жизненными потребностями
Безопасность
Защита
- Декоратор `@login_required`
- Валидация данных
- Проверка прав доступа
- CSRF защита
Валидация
- Проверка процента выполнения
- Уникальность приоритета
- Обязательные поля
- Форматы данных
Интеграция
С другими приложениями
- Связь с жизненными потребностями
- Связь с проектами
- Интеграция с пользователями
Сигналы
- `post_save` - после сохранения
- `post_delete` - после удаления
- Обновление связанных данных
Особенности реализации
Управление приоритетами
- Автоматическое назначение
- Переупорядочивание
- Проверка уникальности
Отслеживание прогресса
- Процент выполнения
- Связь с проектами
- Расчет длительности
Дополнительные поля
- Описание
- Связь с жизненной потребностью
- Приоритет