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

Материал из DOF
Перейти к: навигация, поиск
(Новая страница: «{{Infobox_Plugin | name = tasks | type = workflows }} =workflow/tasks - Статусы задач= Плагин рабочих процессов предназна...»)
 
Строка 6: Строка 6:
 
Плагин рабочих процессов предназначенный для смены статусов задач.
 
Плагин рабочих процессов предназначенный для смены статусов задач.
 
Работает в паре с модулем storage/tasks.
 
Работает в паре с модулем storage/tasks.
Позволяет организовать смену статуса задачи в зависимости от текущего статуса.
+
Позволяет организовать смену статуса задач в зависимости от текущего статуса.
 +
 
 +
==Права плагина==
 +
* changestatus - право на смену статуса объектов
 +
* changestatus/owner - право на смену статуса своих объектов
  
 
==Возможные статусы:==
 
==Возможные статусы:==
* Не просчитанный (new) - новый тег, для которого еще не производился просчет связей.
+
* Активна (active) - активная задача.
* Активный (active) - тег, который был успешно просчитан.
+
* Заморожена (suspend) - задача заморожена.
* Идет просчет (notavailable) - тег, для которого в данный момент производится просчет связей.
+
* Завершена (completed) - задача завершена.
* Ошибка при просчете (failed) - тег, при просчете ссылок которого произошла ошибка.
+
* Удалена (deleted) - задача удалена.
* Удален (deleted) - удаленный тег.
 
  
 
==Метастатусы==
 
==Метастатусы==
* Активный: new, active, notavailable, failed
+
* Активный: active
* Актуальный: new, active, notavailable, failed
+
* Актуальный: active, suspend
* Реальный: new, active, notavailable, failed
+
* Реальный: active, suspend, completed
 
* Мусорный: deleted
 
* Мусорный: deleted
  
Строка 24: Строка 27:
 
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.  
 
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.  
  
=== Не просчитанный ===
+
=== Активна ===
Возможные переходы ИЗ этого статуса:
 
* Не просчитанный
 
* Активный
 
* Идет просчет
 
* Ошибка при просчете
 
* Удален
 
 
 
=== Активный ===
 
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
* Активный
+
* Заморожена
* Идет просчет
+
* Завершена
* Ошибка при просчете
+
* Удалена
* Удален
 
  
=== Идет просчет ===
+
=== Заморожена ===
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
* Активный
+
* Активна
* Идет просчет
+
* Завершена
* Ошибка при просчете
+
* Удалена
* Удален
 
  
=== Ошибка при просчете ===
+
=== Завершена ===
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
* Активный
+
* Удалена
* Идет просчет
 
* Ошибка при просчете
 
* Удален
 
  
=== Удален ===
+
=== Удалена ===
 
Это конечный статус.
 
Это конечный статус.
  
Строка 95: Строка 85:
  
 
==== init() ====
 
==== init() ====
Запускается при вставке в Базу Данных новой записи. Автоматически назначает добавленной записи статус "Не просчитанный" (new).
+
Запускается при вставке в Базу Данных новой записи. Автоматически назначает добавленной записи статус "Активна" (active).
  
 
''Аргументы:''
 
''Аргументы:''
Строка 111: Строка 101:
 
  |-
 
  |-
 
  | storage
 
  | storage
  | tags
+
  | tasks
 
  | insert
 
  | insert
 
  | Событие добавления записи, произведем инициализацию объекта - добавим начальный статус new
 
  | Событие добавления записи, произведем инициализацию объекта - добавим начальный статус new
 
  |-
 
  |-
 
  | storage
 
  | storage
  | tags
+
  | tasks
 
  | soft_delete
 
  | soft_delete
 
  | Событие мягкого удаления записи, произведем смену статуса объекта на deleted
 
  | Событие мягкого удаления записи, произведем смену статуса объекта на deleted
 
  |}
 
  |}

Версия 14:26, 11 декабря 2014

Плагин
Название tasks
Тип workflows


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

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

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

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

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

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

Метастатусы

  • Активный: active
  • Актуальный: active, suspend
  • Реальный: active, suspend, 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 Событие добавления записи, произведем инициализацию объекта - добавим начальный статус new
storage tasks soft_delete Событие мягкого удаления записи, произведем смену статуса объекта на deleted