Skip to content

Модуль 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 — связанные документы