Приложение Projects, системы Карта Успеха — различия между версиями
Материал из m6a
								
												
				Vshpagin (обсуждение | вклад)   (Новая страница: «== Общее описание == Приложение `projects` отвечает за управление проектами в системе "Карта ус…»)  | 
			
(нет различий) 
 | 
Версия 14:02, 30 марта 2025
Содержание
Общее описание
Приложение `projects` отвечает за управление проектами в системе "Карта успеха". Каждый проект связан с целью и содержит набор задач для её достижения.
Модель данных
Project
-  (Опишите поля модели `Project`, например:
- `id` - Integer (Primary Key)
 - `goal` - ForeignKey (связь с моделью Goal)
 - `name` - CharField (название проекта)
 - `description` - TextField (описание)
 - `start_date` - DateField (дата начала)
 - `end_date` - DateField (дата окончания)
 - `completion_percentage` - IntegerField (процент выполнения, от 0 до 100)
 - `contribution_to_goal` - IntegerField (доля в достижении цели, от 0 до 100)
 - `is_archived` - BooleanField (архивный статус)
 
 
)
Методы модели
-  (Опишите методы модели `Project`, например:
- `clean()` - Валидация модели
 - `calculate_duration()` - Расчет длительности проекта
 
 
)
Функциональность
Основные операции
- Создание проектов
 - Редактирование проектов
 - Удаление проектов
 - Просмотр списка проектов
 - Просмотр деталей проекта
 
Управление статусом
- Архивация проектов
 - Фильтрация активных/архивных проектов
 - Отслеживание прогресса
 
Дополнительные функции
- Расчет длительности мероприятий
 - Управление задачами
 - Обновление процента выполнения
 
URL маршруты
-  (Перечислите URL маршруты приложения и их соответствие представлениям, например:
- `/projects/` - Список проектов
 - `/projects/<int:pk>/` - Детали проекта
 - `/projects/create/` - Создание проекта
 - `/projects/<int:pk>/update/` - Обновление проекта
 - `/projects/<int:pk>/delete/` - Удаление проекта
 - `/projects/<int:pk>/archive/` - Архивирование проекта
 
 
)
Формы
ProjectForm
-  (Опишите поля формы `ProjectForm`, например:
- `name` - CharField (поле для ввода названия)
 - `description` - TextField (поле для ввода описания)
 - `goal` - ForeignKey (выбор цели)
 - `start_date` - DateField (поле для ввода даты начала)
 - `end_date` - DateField (поле для ввода даты окончания)
 - `completion_percentage` - IntegerField (поле для ввода процента выполнения)
 - `contribution_to_goal` - IntegerField (поле для ввода доли в достижении цели)
 
 
)
Шаблоны
Основные шаблоны
- `project_list.html` - список проектов
 - `project_detail.html` - детали проекта
 - `project_form.html` - форма создания/редактирования
 
Особенности шаблонов
- Фильтрация проектов
 - Отображение прогресса
 - Управление задачами
 - Навигация по хлебным крошкам
 
Тестирование
Модульные тесты
- Валидация процента выполнения
 - Проверка дат
 - Тест пустых полей
 - Валидация доли в достижении цели
 
Проверяемые аспекты
- Корректность данных
 - Ограничения модели
 - Валидация полей
 - Связи с целями
 
Безопасность
Защита
- Декоратор `@login_required`
 - Валидация данных
 - Проверка прав доступа
 - CSRF защита
 
Валидация
- Проверка процентов
 - Валидация дат
 - Обязательные поля
 - Форматы данных
 
Интеграция
С другими приложениями
- Связь с целями
 - Связь с задачами
 - Интеграция с пользователями
 
Сигналы
- `post_save` - после сохранения
 - `post_delete` - после удаления
 - Обновление прогресса цели
 - Расчет взвешенного завершения
 
Особенности реализации
Управление прогрессом
- Автоматический расчет
 - Взвешенное завершение
 - Обновление связанных целей
 
Отслеживание времени
- Даты начала и окончания
 - Длительность мероприятий
 - Расчет прогресса
 
Дополнительные поля
- Доля в достижении цели
 - Архивный статус
 - Описание проекта