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

Материал из DOF
Перейти к: навигация, поиск
(переход в приостановлен из "запланирован")
(Маршруты статусов)
 
(не показано 5 промежуточных версий 3 участников)
Строка 4: Строка 4:
 
}}
 
}}
  
===Возможные статусы===
+
==Возможные статусы==
запланирован (plan) - учебный процесс запланирован, но еще не начался. Идет уточнение преподавателя, состава учащихся, либо просто не пришло время начала.
+
Запланирован (plan) - учебный процесс запланирован, но еще не начался. Идет уточнение преподавателя, состава учащихся, либо просто не пришло время начала.
идет обучение (active)
+
Идет обучение (active)
приостановлен (suspend) - учебный процесс приостановлен по каким-либо причинам (не оплачено, отсутствует преподаватель, отсутствует ученик и т.д.)
+
Приостановлен (suspend) - учебный процесс приостановлен по каким-либо причинам (не оплачено, отсутствует преподаватель, отсутствует ученик и т.д.)
отменен (canceled) - учебный процесс отменен
+
Отменен (canceled) - учебный процесс отменен
успешно завершен (completed)  - учебный процесс считается проведенным
+
Завершен (completed)  - учебный процесс считается проведенным
  
===Маршруты статусов===
+
=== Метастатусы ===
 +
* Активный: active
 +
* Актуальный: plan, active, suspend
 +
* Реальный:plan, active, suspend, completed
 +
* Мусорный: canceled
 +
 
 +
==Маршруты статусов==
 
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.
 
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.
  
 
==== Запланирован ====
 
==== Запланирован ====
 
Возможные переходы ИЗ этого статуса:  
 
Возможные переходы ИЗ этого статуса:  
* Идет обучение (в поле begindate записывается время).  При этом переходе, все связанные подписки на дисципины в статусе "запланированы" переводятся в статус "идет обучение".
+
* Идет обучение.  При этом переходе, все связанные подписки на дисципины в статусе "запланированы" переводятся в статус "идет обучение".
 
* Отменен
 
* Отменен
 
* Приостановлен - этот переход нужен для того, чтобы при переводе периода из статуса "запланирован" в статус "идет" данный учебный процесс не активировался.  
 
* Приостановлен - этот переход нужен для того, чтобы при переводе периода из статуса "запланирован" в статус "идет" данный учебный процесс не активировался.  
Строка 26: Строка 32:
 
* Приостановлен. При этом переходе, все связанные подписки на дисципины в статусе "идет обучение" переводятся в статус "приостановлен".
 
* Приостановлен. При этом переходе, все связанные подписки на дисципины в статусе "идет обучение" переводятся в статус "приостановлен".
 
* Отменен
 
* Отменен
* Успешно завершен
+
* Завершен
  
 
====Приостановлен====
 
====Приостановлен====
Строка 32: Строка 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().