Разработка: workflows/tasks

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название tasks
Тип workflows


workflow/tasks - Статусы задач

Плагин рабочих процессов предназначенный для смены статусов задач. Работает в паре с модулем storage/tasks. Позволяет организовать смену статуса задач в зависимости от текущего статуса.

Права плагина

  • changestatus - право на смену статуса объектов
  • changestatus/owner - право на смену статуса своих объектов

Возможные статусы:

  • Активна (active) - активная задача.
  • Заморожена (suspend) - задача заморожена.
  • Просрочена (failed) - задача не была завершена вовремя.
  • Завершена (completed) - задача завершена.
  • Удалена (deleted) - задача удалена.

Метастатусы

  • Активный: active
  • Актуальный: active, suspend
  • Реальный: active, suspend, failed, completed
  • Мусорный: deleted

Маршруты статусов

Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.

Активна

Возможные переходы ИЗ этого статуса:

  • Заморожена
  • Просрочена
  • Завершена
  • Удалена

Заморожена

Возможные переходы ИЗ этого статуса:

  • Активна
  • Удалена

Просрочена

Возможные переходы ИЗ этого статуса:

  • Удалена

Завершена

Возможные переходы ИЗ этого статуса:

  • Удалена

Удалена

Это конечный статус.

API

get_list()

Получить список всех возможных статусов для проводки

Аргументы:

  • (нет)

Возвращаемые значения:

  • Массив, со списком всех возможных статусов в формате "Обозначение" => "Название статуса"

get_name()

Получить название статуса по его обозначению в Базе Данных

Аргументы:

  • (string) $status - обозначение статуса латинскими буквами

Возвращаемые значения:

  • (string|bool) - имя этого статуса, либо false, если он не обнаружен в списке допустимых

get_available()

Получить список статусов, в которые может перейти объект.

Аргументы:

  • $id - id объекта в таблице

Возвращаемые значения:

  • (array|bool) - массив возможных состояний в формате ('Обозначение' => 'Название статуса') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.

change()

Сменить статус на указанный.

Аргументы:

  • (int) $id - id объекта в Базе Данных
  • (string) $status - обозначение статуса латинскими буквами
  • (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.

Возвращаемые значения:

  • (bool) true - если статус удалось изменить, или false в случае ошибки

При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.

init()

Запускается при вставке в Базу Данных новой записи. Автоматически назначает добавленной записи статус "Активна" (active).

Аргументы:

  • $id - id только что созданной записи в таблице

Возвращаемые значения:

  • (bool) true если статус успешно назначен или false в случае ошибки

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Пояснение
storage tasks insert Событие добавления записи, произведем инициализацию объекта - добавим начальный статус active
storage tasks soft_delete Событие мягкого удаления записи, произведем смену статуса объекта на deleted