Разработка: workflows/tasks — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Перехватываемые события)
 
Строка 15: Строка 15:
 
* Активна (active) - активная задача.
 
* Активна (active) - активная задача.
 
* Заморожена (suspend) - задача заморожена.
 
* Заморожена (suspend) - задача заморожена.
 +
* Просрочена (failed) - задача не была завершена вовремя.
 
* Завершена (completed) - задача завершена.
 
* Завершена (completed) - задача завершена.
 
* Удалена (deleted) - задача удалена.
 
* Удалена (deleted) - задача удалена.
Строка 21: Строка 22:
 
* Активный: active
 
* Активный: active
 
* Актуальный: active, suspend
 
* Актуальный: active, suspend
* Реальный: active, suspend, completed
+
* Реальный: active, suspend, failed, completed
 
* Мусорный: deleted
 
* Мусорный: deleted
  
Строка 30: Строка 31:
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
 
* Заморожена
 
* Заморожена
 +
* Просрочена
 
* Завершена
 
* Завершена
 
* Удалена
 
* Удалена
Строка 36: Строка 38:
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
 
* Активна
 
* Активна
* Завершена
+
* Удалена
 +
 
 +
=== Просрочена ===
 +
Возможные переходы ИЗ этого статуса:
 
* Удалена
 
* Удалена
  

Текущая версия на 15:17, 11 декабря 2014

Плагин
Название 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