Разработка:workflows/cstreams — различия между версиями
Alex (обсуждение | вклад) (статусы, переходы, сопутствующие действия) |
Yumeneco (обсуждение | вклад) (→Маршруты статусов) |
||
(не показано 6 промежуточных версий 3 участников) | |||
Строка 4: | Строка 4: | ||
}} | }} | ||
− | + | ==Возможные статусы== | |
− | * | + | * Запланирован (plan) - учебный процесс запланирован, но еще не начался. Идет уточнение преподавателя, состава учащихся, либо просто не пришло время начала. |
− | * | + | * Идет обучение (active) |
− | * | + | * Приостановлен (suspend) - учебный процесс приостановлен по каким-либо причинам (не оплачено, отсутствует преподаватель, отсутствует ученик и т.д.) |
− | * | + | * Отменен (canceled) - учебный процесс отменен |
− | * | + | * Завершен (completed) - учебный процесс считается проведенным |
− | ===Маршруты статусов | + | === Метастатусы === |
+ | * Активный: active | ||
+ | * Актуальный: plan, active, suspend | ||
+ | * Реальный:plan, active, suspend, completed | ||
+ | * Мусорный: canceled | ||
+ | |||
+ | ==Маршруты статусов== | ||
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. | Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. | ||
==== Запланирован ==== | ==== Запланирован ==== | ||
Возможные переходы ИЗ этого статуса: | Возможные переходы ИЗ этого статуса: | ||
− | * Идет обучение | + | * Идет обучение. При этом переходе, все связанные подписки на дисципины в статусе "запланированы" переводятся в статус "идет обучение". |
* Отменен | * Отменен | ||
+ | * Приостановлен - этот переход нужен для того, чтобы при переводе периода из статуса "запланирован" в статус "идет" данный учебный процесс не активировался. | ||
==== Идет обучение ==== | ==== Идет обучение ==== | ||
Строка 25: | Строка 32: | ||
* Приостановлен. При этом переходе, все связанные подписки на дисципины в статусе "идет обучение" переводятся в статус "приостановлен". | * Приостановлен. При этом переходе, все связанные подписки на дисципины в статусе "идет обучение" переводятся в статус "приостановлен". | ||
* Отменен | * Отменен | ||
− | * | + | * Завершен |
====Приостановлен==== | ====Приостановлен==== | ||
Строка 31: | Строка 38: | ||
* Идет обучение. При этом переходе, все связанные подписки на дисципины в статусе "приостановлен" переводятся в статус "идет обучение". | * Идет обучение. При этом переходе, все связанные подписки на дисципины в статусе "приостановлен" переводятся в статус "идет обучение". | ||
* Отменен | * Отменен | ||
− | * | + | * Завершен |
====Отменен==== | ====Отменен==== | ||
Это конечный статус | Это конечный статус | ||
− | При переводе | + | При переводе все незавершенные (запланированные, идет обучени, приостановленные) подписки на дисциплины, приписанные к этому потоку отменяются. |
− | ==== | + | ====Завершен==== |
Это конечный статус | Это конечный статус | ||
− | + | Все незавершенные (запланированные, идет обучение, приостановленные) подписки на дисциплины, приписанные к этому потоку, переводятся в статус "Неуспешно завершен" ("Запланирован" переходит в "Отменен", поскольку обучения не проводилось, а статус "Неуспешно завершен" предполагает проведение обучения) без изменения оценки (как правило, остается не выставленной). | |
− | + | ||
− | Все незавершенные (запланированные, идет обучение, приостановленные) подписки на дисциплины, приписанные к этому потоку, переводятся в статус "завершен | + | == API == |
+ | |||
+ | ==== get_list() ==== | ||
+ | Получить список всех возможных статусов для учебного потока | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (нет) | ||
+ | ''Возвращаемые значения:'' | ||
+ | * Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод" | ||
+ | |||
+ | ==== get_name() ==== | ||
+ | Получить название статуса по его обозначению в базе данных | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (string) $status - обозначение статуса латинскими буквами | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых | ||
+ | |||
+ | ==== get_available() ==== | ||
+ | Получить список статусов, в которые может перейти указанный поток | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id - id учебного потока в таблице [[Разработка:storages/cstreams|cstreams]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив. | ||
+ | |||
+ | ==== change() ==== | ||
+ | Сменить статус учебного потока на указанный. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (int) $id - id учебного потока в таблице [[Разработка:storages/cstreams|cstreams]] | ||
+ | * (string) $status - обозначение статуса латинскими буквами | ||
+ | * (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) true - если статус удалось изменить, или false в случае ошибки | ||
+ | |||
+ | При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "[[#Маршруты статусов|Маршруты статусов]]". При каждом изменении статуса данные записываются в таблицу [[Разработка:storages/statushistory|statushistory]]. | ||
+ | ==== init() ==== | ||
+ | Запускается при вставке в таблицу [[Разработка:storages/cstreams|cstreams]] новой записи. Автоматически назначает созданному потоку статус "запланирован" (plan). | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id - id только что созданного потока в таблице [[Разработка:storages/cstreams|cstreams]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) true если статус успешно назначен или false в случае ошибки | ||
+ | |||
+ | ==Перехватываемые события== | ||
+ | |||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/cstreams|cstreams]] | ||
+ | |insert | ||
+ | |Каждый новый созданный поток автоматически переводится в статус "запланирован" (plan), путем вызова функции [[#init()|init()]]. | ||
+ | |} |
Текущая версия на 10:22, 18 февраля 2014
Плагин | |
Название | cstreams |
Тип | workflows |
Содержание
Возможные статусы
- Запланирован (plan) - учебный процесс запланирован, но еще не начался. Идет уточнение преподавателя, состава учащихся, либо просто не пришло время начала.
- Идет обучение (active)
- Приостановлен (suspend) - учебный процесс приостановлен по каким-либо причинам (не оплачено, отсутствует преподаватель, отсутствует ученик и т.д.)
- Отменен (canceled) - учебный процесс отменен
- Завершен (completed) - учебный процесс считается проведенным
Метастатусы
- Активный: active
- Актуальный: plan, active, suspend
- Реальный:plan, active, suspend, completed
- Мусорный: canceled
Маршруты статусов
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.
Запланирован
Возможные переходы ИЗ этого статуса:
- Идет обучение. При этом переходе, все связанные подписки на дисципины в статусе "запланированы" переводятся в статус "идет обучение".
- Отменен
- Приостановлен - этот переход нужен для того, чтобы при переводе периода из статуса "запланирован" в статус "идет" данный учебный процесс не активировался.
Идет обучение
В этот статус процесс возможно перейти только если учебный период, к которому он приписан, находится в статусе "идет обучение"
Возможные переходы ИЗ этого статуса:
- Приостановлен. При этом переходе, все связанные подписки на дисципины в статусе "идет обучение" переводятся в статус "приостановлен".
- Отменен
- Завершен
Приостановлен
Возможные переходы ИЗ этого статуса:
- Идет обучение. При этом переходе, все связанные подписки на дисципины в статусе "приостановлен" переводятся в статус "идет обучение".
- Отменен
- Завершен
Отменен
Это конечный статус При переводе все незавершенные (запланированные, идет обучени, приостановленные) подписки на дисциплины, приписанные к этому потоку отменяются.
Завершен
Это конечный статус Все незавершенные (запланированные, идет обучение, приостановленные) подписки на дисциплины, приписанные к этому потоку, переводятся в статус "Неуспешно завершен" ("Запланирован" переходит в "Отменен", поскольку обучения не проводилось, а статус "Неуспешно завершен" предполагает проведение обучения) без изменения оценки (как правило, остается не выставленной).
API
get_list()
Получить список всех возможных статусов для учебного потока
Аргументы:
- (нет)
Возвращаемые значения:
- Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод"
get_name()
Получить название статуса по его обозначению в базе данных
Аргументы:
- (string) $status - обозначение статуса латинскими буквами
Возвращаемые значения:
- (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых
get_available()
Получить список статусов, в которые может перейти указанный поток
Аргументы:
- $id - id учебного потока в таблице cstreams
Возвращаемые значения:
- (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.
change()
Сменить статус учебного потока на указанный.
Аргументы:
- (int) $id - id учебного потока в таблице cstreams
- (string) $status - обозначение статуса латинскими буквами
- (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.
Возвращаемые значения:
- (bool) true - если статус удалось изменить, или false в случае ошибки
При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.
init()
Запускается при вставке в таблицу cstreams новой записи. Автоматически назначает созданному потоку статус "запланирован" (plan).
Аргументы:
- $id - id только что созданного потока в таблице cstreams
Возвращаемые значения:
- (bool) true если статус успешно назначен или false в случае ошибки
Перехватываемые события
Тип плагина | Код плагина | Код события | Пояснение |
---|---|---|---|
storage | cstreams | insert | Каждый новый созданный поток автоматически переводится в статус "запланирован" (plan), путем вызова функции init(). |