Модуль tasks
Путь: app/tasks/
Django app: app.tasks
Назначение
Task Manager — управление задачами, поручениями и встречами внутри компании.
Модели
Issue (задача)
python
class Issue(Model):
title = CharField()
description = TextField() # Markdown
status = FK(IssueStatus)
category = FK(IssueCategory)
priority = CharField(choices=[
('critical', 'Критичный'),
('high', 'Высокий'),
('medium', 'Средний'),
('low', 'Низкий'),
])
assignee = FK(User) # исполнитель
reporter = FK(User) # постановщик
watchers = ManyToManyField(User) # наблюдатели
due_date = DateField(null=True)
document = FK(Documents, null=True) # связанный документ
created_at = DateTimeField()
updated_at = DateTimeField()IssueStatus
Справочник статусов (настраивается администратором):
python
class IssueStatus(Model):
name = CharField()
color = CharField() # HEX-цвет для UI
order = IntegerField() # порядок в канбан
is_final = BooleanField() # финальный статус?IssueCategory
python
class IssueCategory(Model):
name = CharField()
icon = CharField()
is_active = BooleanField()Enumeration
Общий справочник перечислений (используется в нескольких модулях):
python
class Enumeration(Model):
type = CharField() # тип перечисления
value = CharField() # значение
label = CharField() # отображаемое названиеMeetingType / MeetingParticipant
python
class MeetingType(Model):
name = CharField() # "Планёрка", "Совещание"
class MeetingParticipant(Model):
meeting = FK(Meeting)
user = FK(User)
is_required = BooleanField() # обязательный участник?
status = CharField() # принял / отклонил / ожидаетAPI
| Endpoint | Описание |
|---|---|
GET /api/v2/tasks/ | Список задач |
POST /api/v2/tasks/ | Создать задачу |
PATCH /api/v2/tasks/{id}/ | Обновить задачу |
GET /api/v2/tasks/statuses/ | Справочник статусов |
GET /api/v2/tasks/categories/ | Справочник категорий |
GET /api/v2/meetings/ | Встречи |
Уведомления
При изменении задачи:
- Исполнитель и наблюдатели получают Telegram-уведомление
- Через
app.telegramбот отправляет сообщение
Связи
app.users— исполнители и постановщикиapp.company_structure— отделыapp.telegram— уведомленияapp.document— связанные документы