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

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


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

  • Неподтверждена (draft) - тема создана, но по ней еще нельзя учится.
  • Действующая (active) - по теме происходит обучение.
  • Пройденная (checked) - тема пройдена и проверена завучем, название темы нельзя менять.
  • Зафиксирована (fixed) - тема пройдена и по ней нельзя выставлять и менять оценки
  • Временно исключена (excluded) - тема временно исключена из учебного процесса.
  • Удалена (canceled) - тема удалена.

Метастатусы

  • Активный: active
  • Актуальный: draft, active, checked, fixed
  • Реальный: draft, active, checked, fixed, excluded
  • Мусорный: canceled

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

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

Неподтверждена

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

  • Действующая
  • Удалена

Действующая

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

  • Неподтверждена - завуч не одобрил тему
  • Пройденная
  • Зафиксирована
  • Временно исключена
  • Удалена

Пройденная

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

  • Зафиксирована
  • Удалена

Зафиксирована

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

  • Неподтверждена - тема снова нуждается в доработке
  • Действующая - добрый завуч (после кипы объяснительных) решает позволить учителю поменять тему и оценку
  • Временно исключена
  • Удалена

Временно исключена

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

  • Действующая
  • Удалена

Удалена

Конечный статус

API

get_list()

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

Аргументы:

  • (нет)

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

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

get_name()

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

Аргументы:

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

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

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

get_available()

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

Аргументы:

  • $id - id темы в таблице plans

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

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

change()

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

Аргументы:

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

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

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

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

init()

Запускается при вставке в таблицу plans новой записи. Автоматически назначает созданной теме статус "Неподтверждена" (draft).

Аргументы:

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

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

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

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

Таблица событий, которые перхватывает этот плагин
Тип плагина Код плагина Код события Пояснение
storage plans insert Каждая новая созданная подписка на предмет автоматически переводится в статус "Неподтверждена" (draft), путем вызова функции init().