Приложение Categories, системы Карта Успеха
Материал из m6a
Версия от 13:24, 30 марта 2025; Vshpagin (обсуждение | вклад) (Новая страница: «== Общее описание == Приложение `categories` отвечает за управление категориями жизненных потр…»)
Содержание
Общее описание
Приложение `categories` отвечает за управление категориями жизненных потребностей пользователя. Категории являются верхним уровнем иерархии в системе и служат для группировки жизненных потребностей.
Модель данных
Category
- (Опишите поля модели `Category`, например:
- `id` - Integer (Primary Key)
- `user` - ForeignKey (связь с моделью User)
- `name` - CharField (название категории)
- `completion_percentage` - IntegerField (процент выполнения, от 0 до 100)
)
Ограничения
- Уникальность имени категории для каждого пользователя
- Валидация процента выполнения (0-100%)
- Связь с пользователем (CASCADE при удалении)
Функциональность
Основные операции
- Создание категорий
- Редактирование категорий
- Удаление категорий
- Просмотр списка категорий
- Просмотр деталей категории
Дополнительные функции
- Загрузка категорий из JSON
- Загрузка жизненных потребностей для категории
- Визуализация данных (графики)
URL маршруты
- (Перечислите URL маршруты приложения и их соответствие представлениям, например:
- `/categories/` - `category_list` (список категорий)
- `/categories/<int:pk>/` - `category_detail` (детали категории)
- `/categories/create/` - `category_create` (создание категории)
- `/categories/<int:pk>/edit/` - `category_edit` (редактирование категории)
- `/categories/<int:pk>/delete/` - `category_delete` (удаление категории)
)
Представления (Views)
Основные представления
- (Опишите основные представления, используемые в приложении, например:
- `category_list` - Представление для отображения списка категорий.
- `category_detail` - Представление для отображения деталей категории.
- `category_create` - Представление для создания категории.
- `category_edit` - Представление для редактирования категории.
- `category_delete` - Представление для удаления категории.
)
Вспомогательные функции
- (Опишите вспомогательные функции, используемые в представлениях, например:
- Функции для загрузки данных из 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
- Массовое создание
- Обработка ошибок
- Логирование