Приложение Categories, системы Карта Успеха — различия между версиями

Материал из m6a
Перейти к: навигация, поиск
(Category)
(URL маршруты)
Строка 31: Строка 31:
  
 
== URL маршруты ==
 
== URL маршруты ==
* (Перечислите URL маршруты приложения и их соответствие представлениям, например:
+
  /categories/
** `/categories/` - `category_list` (список категорий)
+
  ├── ''                    # Список категорий
** `/categories/<int:pk>/` - `category_detail` (детали категории)
+
  ├── '<int:pk>/'          # Детали категории
** `/categories/create/` - `category_create` (создание категории)
+
  ├── 'create/'            # Создание категории
** `/categories/<int:pk>/edit/` - `category_edit` (редактирование категории)
+
  ├── 'update/<int:pk>/'  # Обновление категории
** `/categories/<int:pk>/delete/` - `category_delete` (удаление категории)
+
  ├── 'delete/<int:pk>/'  # Удаление категории
)
+
  ├── 'load-categories/'  # Загрузка из JSON
 +
  ├── 'category_chart/'    # График категорий
 +
  └── 'load_life_needs/<int:category_id>/'  # Загрузка потребностей
  
 
== Представления (Views) ==
 
== Представления (Views) ==

Версия 13:53, 30 марта 2025

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

Приложение `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)

Основные представления

  • (Опишите основные представления, используемые в приложении, например:
    • `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
  • Массовое создание
  • Обработка ошибок
  • Логирование