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

Материал из DOF
Перейти к: навигация, поиск
(действия, сопутствующие переходу)
(Сформированы ручные подписки)
 
(не показаны 23 промежуточные версии 3 участников)
Строка 4: Строка 4:
 
}}
 
}}
  
===Возможные статусы:===
+
==Возможные статусы:==
 
* Запланирован (plan) - учебный период запланирован, но реализация еще не началась.
 
* Запланирован (plan) - учебный период запланирован, но реализация еще не началась.
* Созданы учебные потоки (createstreams) - промежуточный статус, переход в который инициирует автоматические операции.
+
* Созданы учебные процессы (createstreams) - промежуточный статус, переход в который инициирует автоматические операции.
 
* Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции.
 
* Сформированы ручные подписки (createsbc) - промежуточный статус, переход в который инициирует автоматические операции.
 
* Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции.
 
* Сформировано расписание (createschedule) - промежуточный статус, переход в который инициирует автоматические операции.
 
* Идет учебный процесс (active) - учебные процессы могут быть активны.
 
* Идет учебный процесс (active) - учебные процессы могут быть активны.
* Успешно завершен (completed) - все обучение по данному периоду завершено. Могут создаваться только пересдачи, если они происходят без повторного обучения.
+
* Завершен (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 = индивидуальное в статусе обучается), в соответствии с учебной программой. Внутри потоков создаются подписки.
 
  
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
    * Сформированы ручные подписки
+
* Сформированы ручные подписки
    * Отменен
+
* Отменен
  
 
==== Сформированы ручные подписки====
 
==== Сформированы ручные подписки====
Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал потоки и подписки для подписок.
+
Никаких автоматических действий не выполняется, но предполагается, что диспетчер-администратор создал подписки для процессов.
  
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
    * Сформировано расписание
+
* Сформировано расписание
    * Отменен
+
* Отменен
  
 
==== Сформировано расписание====
 
==== Сформировано расписание====
Строка 39: Строка 47:
  
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
    * Идет учебный процесс
+
* Идет учебный процесс
    * Отменен
+
* Отменен
  
 
====Идет учебный процесс====
 
====Идет учебный процесс====
Строка 46: Строка 54:
  
 
Возможные переходы ИЗ этого статуса:
 
Возможные переходы ИЗ этого статуса:
    * Завершен
+
* Завершен
    * Отменен
+
* Отменен
  
====Успешно завершен====
+
====Завершен====
 
Это конечный статус.
 
Это конечный статус.
  
При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные потоки, приписанные к этому периоду переводятся в статус "успешно завершен".
+
При переводе все запланированные учебные процессы, приписанные к этому периоду переводятся в статус "Отменен", активные и приостановленные  переводятся в статус "Успешно завершен".
  
 
====Отменен ====
 
====Отменен ====
 
Это конечный статус.
 
Это конечный статус.
  
При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные потоки, приписанные к этому периоду отменяются.
+
При переводе все незавершенные (запланированные, идет обучение, приостановленные) учебные процессы, приписанные к этому периоду отменяются.
 +
 
 +
== API ==
 +
 
 +
==== get_list() ====
 +
Получить список всех возможных статусов для учебного периода
 +
 
 +
''Аргументы:''
 +
* (нет)
 +
''Возвращаемые значения:''
 +
* Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод"
 +
 
 +
==== get_name() ====
 +
Получить название статуса по его обозначению в базе данных
 +
 
 +
''Аргументы:''
 +
* (string) $status - обозначение статуса латинскими буквами
 +
''Возвращаемые значения:''
 +
* (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых
 +
 
 +
==== get_available() ====
 +
Получить список статусов, в которые может перейти указанный учебный период.
 +
 
 +
''Аргументы:''
 +
* $id - id учебного периода в таблице [[Разработка:storages/ages|ages]]
 +
''Возвращаемые значения:''
 +
* (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.
 +
 
 +
==== change() ====
 +
Сменить статус учебного периода на указанный.
 +
 
 +
''Аргументы:''
 +
* (int) $id - id учебного периода в таблице [[Разработка:storages/ages|ages]]
 +
* (string) $status - обозначение статуса латинскими буквами
 +
* (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.
 +
''Возвращаемые значения:''
 +
* (bool) true - если статус удалось изменить, или false в случае ошибки
 +
 
 +
При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу [[Разработка:storages/statushistory|statushistory]].
 +
==== init() ====
 +
Запускается при вставке в таблицу [[Разработка:storages/ages|ages]] новой записи. Автоматически назначает созданному учебному периоду статус "запланирован" (plan).
 +
 
 +
''Аргументы:''
 +
* $id - id только что созданного учебного периода в таблице [[Разработка:storages/ages|ages]]
 +
''Возвращаемые значения:''
 +
* (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 в случае ошибки

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

Таблица событий, которые перхватывает этот плагин
Тип плагина Код плагина Код события Пояснение