Разработка:workflows/ages — различия между версиями
Ilya (обсуждение | вклад) (Добавлен раздел API) |
Yumeneco (обсуждение | вклад) (→Сформированы ручные подписки) |
||
(не показано 18 промежуточных версий 2 участников) | |||
Строка 6: | Строка 6: | ||
==Возможные статусы:== | ==Возможные статусы:== | ||
* Запланирован (plan) - учебный период запланирован, но реализация еще не началась. | * Запланирован (plan) - учебный период запланирован, но реализация еще не началась. | ||
− | * Созданы учебные | + | * Созданы учебные процессы (createstreams) - промежуточный статус, переход в который инициирует автоматические операции. |
* Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции. | * Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции. | ||
* Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции. | * Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции. | ||
* Идет учебный процесс (active) - учебные процессы могут быть активны. | * Идет учебный процесс (active) - учебные процессы могут быть активны. | ||
− | * | + | * Завершен (completed) - все обучение по данному периоду завершено. Могут создаваться только пересдачи, если они происходят без повторного обучения. |
* Отменен (canceled) - обучение в данном семестре отменено. | * Отменен (canceled) - обучение в данном семестре отменено. | ||
+ | |||
+ | == Метастатусы == | ||
+ | * Активный:active | ||
+ | * Актуальный: plan, active, createcstreams, createsbc, createchedule, active | ||
+ | * Реальный: plan, active, createcstreams, createsbc, createchedule, active, completed | ||
+ | * Мусорный: canceled | ||
== Маршруты статусов== | == Маршруты статусов== | ||
− | Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. | + | Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. |
====Запланирован ==== | ====Запланирован ==== | ||
Возможные переходы ИЗ этого статуса: | Возможные переходы ИЗ этого статуса: | ||
− | * Созданы учебные | + | * Созданы учебные процессы |
* Отменен | * Отменен | ||
− | ==== Созданы учебные | + | ==== Созданы учебные процессы==== |
− | При переходе в тот статус, для обязательных дисциплин (programmitems.required = true) автоматически создаются учебные потоки для активных академических групп (в статусе обучается) и индивидуальных подписок (programmsbcs.edutype = индивидуальное, в статусе обучается), в соответствии с учебной программой. После создания групповых потоков для них запускаются синхронизации подписок. | + | Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал процессы. |
+ | |||
+ | В плане(При переходе в тот статус, для обязательных дисциплин (programmitems.required = true) автоматически создаются учебные потоки для активных академических групп (в статусе обучается) и индивидуальных подписок (programmsbcs.edutype = индивидуальное, в статусе обучается), в соответствии с учебной программой. После создания групповых потоков для них запускаются синхронизации подписок.) | ||
Возможные переходы ИЗ этого статуса: | Возможные переходы ИЗ этого статуса: | ||
Строка 29: | Строка 37: | ||
==== Сформированы ручные подписки==== | ==== Сформированы ручные подписки==== | ||
− | Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал | + | Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал подписки для процессов. |
Возможные переходы ИЗ этого статуса: | Возможные переходы ИЗ этого статуса: | ||
Строка 49: | Строка 57: | ||
* Отменен | * Отменен | ||
− | ==== | + | ====Завершен==== |
Это конечный статус. | Это конечный статус. | ||
− | При переводе все | + | При переводе все запланированные учебные процессы, приписанные к этому периоду переводятся в статус "Отменен", активные и приостановленные переводятся в статус "Успешно завершен". |
====Отменен ==== | ====Отменен ==== | ||
Это конечный статус. | Это конечный статус. | ||
− | При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные | + | При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные процессы, приписанные к этому периоду отменяются. |
== API == | == API == | ||
Строка 64: | Строка 72: | ||
Получить список всех возможных статусов для учебного периода | Получить список всех возможных статусов для учебного периода | ||
− | + | ''Аргументы:'' | |
* (нет) | * (нет) | ||
− | + | ''Возвращаемые значения:'' | |
* Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод" | * Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод" | ||
==== get_name() ==== | ==== get_name() ==== | ||
+ | Получить название статуса по его обозначению в базе данных | ||
− | + | ''Аргументы:'' | |
− | |||
* (string) $status - обозначение статуса латинскими буквами | * (string) $status - обозначение статуса латинскими буквами | ||
− | + | ''Возвращаемые значения:'' | |
− | * (string|bool) - перевод для этого статуса, либо false, если | + | * (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых |
==== get_available() ==== | ==== get_available() ==== | ||
− | + | Получить список статусов, в которые может перейти указанный учебный период. | |
− | + | ''Аргументы:'' | |
* $id - id учебного периода в таблице [[Разработка:storages/ages|ages]] | * $id - id учебного периода в таблице [[Разработка:storages/ages|ages]] | ||
− | + | ''Возвращаемые значения:'' | |
* (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив. | * (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив. | ||
Строка 88: | Строка 96: | ||
Сменить статус учебного периода на указанный. | Сменить статус учебного периода на указанный. | ||
− | + | ''Аргументы:'' | |
* (int) $id - id учебного периода в таблице [[Разработка:storages/ages|ages]] | * (int) $id - id учебного периода в таблице [[Разработка:storages/ages|ages]] | ||
* (string) $status - обозначение статуса латинскими буквами | * (string) $status - обозначение статуса латинскими буквами | ||
* (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null. | * (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null. | ||
− | + | ''Возвращаемые значения:'' | |
* (bool) true - если статус удалось изменить, или false в случае ошибки | * (bool) true - если статус удалось изменить, или false в случае ошибки | ||
+ | При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу [[Разработка:storages/statushistory|statushistory]]. | ||
==== init() ==== | ==== init() ==== | ||
− | Запускается при вставке в таблицу [[Разработка:storages/ages|ages]] новой записи. Автоматически назначает | + | Запускается при вставке в таблицу [[Разработка:storages/ages|ages]] новой записи. Автоматически назначает созданному учебному периоду статус "запланирован" (plan). |
− | + | ''Аргументы:'' | |
* $id - id только что созданного учебного периода в таблице [[Разработка:storages/ages|ages]] | * $id - id только что созданного учебного периода в таблице [[Разработка:storages/ages|ages]] | ||
− | + | ''Возвращаемые значения:'' | |
* (bool) true если статус успешно назначен или false в случае ошибки | * (bool) true если статус успешно назначен или false в случае ошибки | ||
+ | |||
+ | ==Перехватываемые события== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перхватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |} |
Текущая версия на 15:53, 17 февраля 2014
Плагин | |
Название | ages |
Тип | workflows |
Возможные статусы:
- Запланирован (plan) - учебный период запланирован, но реализация еще не началась.
- Созданы учебные процессы (createstreams) - промежуточный статус, переход в который инициирует автоматические операции.
- Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции.
- Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции.
- Идет учебный процесс (active) - учебные процессы могут быть активны.
- Завершен (completed) - все обучение по данному периоду завершено. Могут создаваться только пересдачи, если они происходят без повторного обучения.
- Отменен (canceled) - обучение в данном семестре отменено.
Метастатусы
- Активный:active
- Актуальный: plan, active, createcstreams, createsbc, createchedule, active
- Реальный: plan, active, createcstreams, createsbc, createchedule, active, completed
- Мусорный: canceled
Маршруты статусов
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.
Запланирован
Возможные переходы ИЗ этого статуса:
- Созданы учебные процессы
- Отменен
Созданы учебные процессы
Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал процессы.
В плане(При переходе в тот статус, для обязательных дисциплин (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 в случае ошибки
При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.
init()
Запускается при вставке в таблицу ages новой записи. Автоматически назначает созданному учебному периоду статус "запланирован" (plan).
Аргументы:
- $id - id только что созданного учебного периода в таблице ages
Возвращаемые значения:
- (bool) true если статус успешно назначен или false в случае ошибки
Перехватываемые события
Тип плагина | Код плагина | Код события | Пояснение |
---|---|---|---|