Приложение 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
  • Массовое создание
  • Обработка ошибок
  • Логирование