Приложение Categories, системы Карта Успеха
Материал из m6a
Содержание
Общее описание
Приложение `categories` отвечает за управление категориями жизненных потребностей пользователя. Категории являются верхним уровнем иерархии в системе и служат для группировки жизненных потребностей.
Модель данных
Category
class Category(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='categories') name = models.CharField(max_length=100) description = models.TextField(blank=True) completion_percentage = models.IntegerField(default=0)
Ограничения
- Уникальность имени категории для каждого пользователя
- Валидация процента выполнения (0-100%)
- Связь с пользователем (CASCADE при удалении)
Функциональность
Основные операции
- Создание категорий
- Редактирование категорий
- Удаление категорий
- Просмотр списка категорий
- Просмотр деталей категории
Дополнительные функции
- Загрузка категорий из JSON
- Загрузка жизненных потребностей для категории
- Визуализация данных (графики)
URL маршруты
/categories/ ├── # Список категорий ├── '<int:pk>/' # Детали категории ├── 'create/' # Создание категории ├── 'update/<int:pk>/' # Обновление категории ├── 'delete/<int:pk>/' # Удаление категории ├── 'load-categories/' # Загрузка из JSON ├── 'category_chart/' # График категорий └── 'load_life_needs/<int:category_id>/' # Загрузка потребностей
Представления (Views)
Основные представления
@login_required def category_list(request) @login_required def category_detail(request, pk) @login_required def category_create(request) @login_required def category_update(request, pk) @login_required def category_delete(request, pk)
Вспомогательные функции
- (Опишите вспомогательные функции, используемые в представлениях, например:
- Функции для загрузки данных из JSON
- Функции для генерации графиков
)
Формы
CategoryForm
- (Опишите поля формы `CategoryForm`, например:
- `name` - CharField (поле для ввода названия категории)
- `completion_percentage` - IntegerField (поле для ввода процента выполнения)
)
Шаблоны
Основные шаблоны
- `category_list.html` - список категорий
- `category_detail.html` - детали категории
- `category_form.html` - форма создания/редактирования
- `category_chart.html` - визуализация данных
Особенности шаблонов
- Навигация по хлебным крошкам
- Табличное отображение данных
- Интеграция с Plotly для графиков
- Формы с валидацией
Визуализация данных
Графики
- Полярная диаграмма категорий
- Отображение процентов выполнения
- Интерактивные подсказки
- Кастомизированные цвета
Настройки графика
- (Опишите настройки графика, используемые в Plotly, например:
- Цветовая схема
- Размер шрифта
- Названия осей
)
Тестирование
Модульные тесты
- Создание категории
- Валидация процента выполнения
- Уникальность имени категории
- Значения по умолчанию
- Строковое представление
Проверяемые аспекты
- Корректность данных
- Ограничения модели
- Валидация полей
- Связи с пользователем
Безопасность
Защита
- Декоратор `@login_required`
- Валидация данных
- Проверка прав доступа
- CSRF защита
Валидация
- Проверка процента выполнения
- Уникальность имени категории
- Обязательные поля
- Форматы данных
Интеграция
С другими приложениями
- Связь с жизненными потребностями
- Интеграция с пользователями
- Использование общих шаблонов
Импорт данных
- Загрузка из JSON
- Массовое создание
- Обработка ошибок
- Логирование