Разработка:workflows/ages
Плагин | |
Название | ages |
Тип | workflows |
Содержание
Возможные статусы:
- Запланирован (plan) - учебный период запланирован, но реализация еще не началась.
- Созданы учебные потоки (createstreams) - промежуточный статус, переход в который инициирует автоматические операции.
- Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции.
- Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции.
- Идет учебный процесс (active) - учебные процессы могут быть активны.
- Успешно завершен (completed) - все обучение по данному периоду завершено. Могут создаваться только пересдачи, если они происходят без повторного обучения.
- Отменен (canceled) - обучение в данном семестре отменено.
Маршруты статусов
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. При каждом изменении статуса данные записываются в таблицу statushistory
Запланирован
Возможные переходы ИЗ этого статуса:
- Созданы учебные потоки
- Отменен
Созданы учебные потоки
При переходе в тот статус, для обязательных дисциплин (programmitems.required = true) автоматически создаются учебные потоки для активных академических групп (в статусе обучается) и индивидуальных подписок (programmsbcs.edutype = индивидуальное, в статусе обучается), в соответствии с учебной программой. После создания групповых потоков для них запускаются синхронизации подписок.
Возможные переходы ИЗ этого статуса:
- Сформированы ручные подписки
- Отменен
Сформированы ручные подписки
Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал потоки и подписки для подписок.
Возможные переходы ИЗ этого статуса:
- Сформировано расписание
- Отменен
Сформировано расписание
Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал шаблон расписания.
Возможные переходы ИЗ этого статуса:
- Идет учебный процесс
- Отменен
Идет учебный процесс
При этом переходе, все учебные потоки, приписанные к данному периоду, из статуса "запланирован" переводятся в статус "идет учебный процесс".
Возможные переходы ИЗ этого статуса:
- Завершен
- Отменен
Успешно завершен
Это конечный статус.
При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные потоки, приписанные к этому периоду переводятся в статус "успешно завершен".
Отменен
Это конечный статус.
При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные потоки, приписанные к этому периоду отменяются.
API
get_list()
Получить список всех возможных статусов для учебного периода
Аргументы:
- (нет)
Возвращаемые значения:
- Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод"
get_name()
Аргументы:
- (string) $status - обозначение статуса латинскими буквами
Возвращаемые значения:
- (string|bool) - перевод для этого статуса, либо false, если она не обнаружен в списке допустимых
get_available()
Получчить список статусов, в которые может перейти указанный учебный период.
Аргументы:
- $id - id учебного периода в таблице ages
Возвращаемые значения:
- (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.
change()
Сменить статус учебного периода на указанный.
Аргументы:
- (int) $id - id учебного периода в таблице ages
- (string) $status - обозначение статуса латинскими буквами
- (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.
Возвращаемые значения:
- (bool) true - если статус удалось изменить, или false в случае ошибки
init()
Запускается при вставке в таблицу ages новой записи. Автоматически назначает всем созданным учебным периодам статус "запланирован" (plan).
Аргументы:
- $id - id только что созданного учебного периода в таблице ages
Возвращаемые значения:
- (bool) true если статус успешно назначен или false в случае ошибки