112 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class NotificationVerbs:
TASK_ASSIGNED = "task_assigned"
TASK_REASSIGNED = "task_reassigned"
TASK_COMMENT = "task_comment"
TASK_DUE_DATE_CHANGED = "task_due_date_changed"
TASK_DUE_SOON = "task_due_soon"
TASK_OVERDUE = "task_overdue"
TASK_COMPLETED = "task_completed"
TASK_REOPENED = "task_reopened"
TASK_LINKED_OBJECT_ADDED = "task_linked_object_added"
TASK_BOARD_MEMBER_ADDED = "task_board_member_added"
class ActionURLs:
@staticmethod
def task_detail(task) -> str:
return f"/tasks?board={task.board_id}&task={task.id}"
@staticmethod
def board_detail(board) -> str:
return f"/tasks?board={board.id}"
class MessageTemplates:
@staticmethod
def task_assigned(task, actor_name: str) -> tuple[str, str]:
return (
"Вам назначена задача",
f'{actor_name} назначил вам задачу #{task.id} "{task.title}".',
)
@staticmethod
def task_reassigned(task, actor_name: str) -> tuple[str, str]:
return (
"Исполнитель задачи изменен",
f'{actor_name} изменил исполнителя задачи #{task.id} "{task.title}".',
)
@staticmethod
def task_comment(task, actor_name: str, text: str) -> tuple[str, str]:
preview = text[:160]
return (
"Новый комментарий к задаче",
f'{actor_name} прокомментировал задачу #{task.id} "{task.title}": {preview}',
)
@staticmethod
def task_due_date_changed(
task,
actor_name: str,
old_due_date,
new_due_date,
) -> tuple[str, str]:
old_value = old_due_date or "без срока"
new_value = new_due_date or "без срока"
return (
"Срок задачи изменен",
(
f'{actor_name} изменил срок задачи #{task.id} "{task.title}": '
f"{old_value} -> {new_value}."
),
)
@staticmethod
def task_due_soon(task) -> tuple[str, str]:
return (
"Срок задачи сегодня",
f'Сегодня срок задачи #{task.id} "{task.title}".',
)
@staticmethod
def task_overdue(task) -> tuple[str, str]:
return (
"Задача просрочена",
f'Просрочена задача #{task.id} "{task.title}".',
)
@staticmethod
def task_completed(task, actor_name: str) -> tuple[str, str]:
return (
"Задача завершена",
f'{actor_name} завершил задачу #{task.id} "{task.title}".',
)
@staticmethod
def task_reopened(task, actor_name: str) -> tuple[str, str]:
return (
"Задача возвращена в работу",
f'{actor_name} вернул в работу задачу #{task.id} "{task.title}".',
)
@staticmethod
def task_linked_object_added(
task,
actor_name: str,
object_type: str,
) -> tuple[str, str]:
return (
"К задаче добавлен связанный объект",
(
f'{actor_name} добавил объект "{object_type}" '
f'к задаче #{task.id} "{task.title}".'
),
)
@staticmethod
def board_member_added(board, actor_name: str) -> tuple[str, str]:
return (
"Вас добавили на доску",
f'{actor_name} добавил вас на доску "{board.name}".',
)