Разработка:workflows/cpassed — различия между версиями
Alex (обсуждение | вклад) (проверка подписки на учебную программу при переводе в стут "идет обучение") |
Ilya (обсуждение | вклад) (Добавлен раздел API) |
||
Строка 3: | Строка 3: | ||
| type = workflows | | type = workflows | ||
}} | }} | ||
− | + | ==Возможные статусы== | |
* запланирован (plan) - слушатель подписан на обучение данной дисциплине в данном учебном процессе, но обучение еще не началось. | * запланирован (plan) - слушатель подписан на обучение данной дисциплине в данном учебном процессе, но обучение еще не началось. | ||
* идет обучение (active) - слушатель обучается в составе учебного процесса. | * идет обучение (active) - слушатель обучается в составе учебного процесса. | ||
Строка 12: | Строка 12: | ||
* Неуспешно завершен (failed) - обучение было проведено, но студент не сдал предмет или предмет был пересдан в другой подписке (cpassed). Оценка из текущей записи не является окончательной, отображается только в истории пересдач и в сохраненных приказах-ведомостях. Если пересдачи со статусом completed нет, дисциплина считается не сданной. Если дисциплина была передана, то окончательной является оценка из другой записи, в которой поле repeatid ссылается на текущую запись. | * Неуспешно завершен (failed) - обучение было проведено, но студент не сдал предмет или предмет был пересдан в другой подписке (cpassed). Оценка из текущей записи не является окончательной, отображается только в истории пересдач и в сохраненных приказах-ведомостях. Если пересдачи со статусом completed нет, дисциплина считается не сданной. Если дисциплина была передана, то окончательной является оценка из другой записи, в которой поле repeatid ссылается на текущую запись. | ||
− | + | ==Маршруты статусов== | |
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. | Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу. | ||
Строка 52: | Строка 52: | ||
==== Неуспешно завершен ==== | ==== Неуспешно завершен ==== | ||
Конечный статус | Конечный статус | ||
+ | |||
+ | == API == | ||
+ | |||
+ | ==== get_list() ==== | ||
+ | Получить список всех возможных статусов для подписки на предмет | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (нет) | ||
+ | ''Возвращаемые значения:'' | ||
+ | * Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод" | ||
+ | |||
+ | ==== get_name() ==== | ||
+ | Получить название статуса по его обозначению в базе данных | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (string) $status - обозначение статуса латинскими буквами | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых | ||
+ | |||
+ | ==== get_available() ==== | ||
+ | Получить список статусов, в которые может перейти указанная подписка на предмет | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id - id подписки на предмет в таблице [[Разработка:storages/cpassed|cpassed]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив. | ||
+ | |||
+ | ==== change() ==== | ||
+ | Сменить статус подписки на предмет на указанный. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (int) $id - id учебного периода в таблице [[Разработка:storages/cpassed|cpassed]] | ||
+ | * (string) $status - обозначение статуса латинскими буквами | ||
+ | * (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) true - если статус удалось изменить, или false в случае ошибки | ||
+ | |||
+ | При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу [[Разработка:storages/statushistory|statushistory]]. | ||
+ | ==== init() ==== | ||
+ | Запускается при вставке в таблицу [[Разработка:storages/cpassed|cpassed]] новой записи. Автоматически назначает созданной подписке на предмет статус "запланирован" (plan). | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id - id только что созданной подписке на предмет в таблице [[Разработка:storages/cpassed|cpassed]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) true если статус успешно назначен или false в случае ошибки | ||
+ | |||
+ | ==Перехватываемые события== |
Версия 20:47, 15 февраля 2010
Плагин | |
Название | cpassed |
Тип | workflows |
Содержание
Возможные статусы
- запланирован (plan) - слушатель подписан на обучение данной дисциплине в данном учебном процессе, но обучение еще не началось.
- идет обучение (active) - слушатель обучается в составе учебного процесса.
- приостановлен (suspend) - обучение приостановлено по тем или иным причинам (например, не поступление оплаты или приостановка всего процесса)
- отменен (canceled) - обучение отменено до его завершения (слушатель отчислен, учебный процесс отменен, слушатель перевелся или отказался от дисциплины).
- Успешно завершен (completed) - учебный процесс был проведен и успешно завершен. Студент считается сдавшим данную дисциплину, а текущая оценка считается окончательным результатом студента. Каждая запись с таким статусом считается отдельной итоговой оценкой, поэтому нужно заботиться о том, чтобы не было дублирования (при пересдачи старые оценки переводить в статус "неуспешно завершен"). Считаем, что в рамках одной подписки на программу может быть только одна подписка на каждую дисциплину с таким статусом (но могут быть в других статусах).
- перезачет из другой программы или учебного заведения (reoffset) - оценка была выставлена по результатам учебного процесса в другой подписке или по предъявленным документам из другого учебного заведения. Обучения не проводилось, но оценка выставлена.
- Неуспешно завершен (failed) - обучение было проведено, но студент не сдал предмет или предмет был пересдан в другой подписке (cpassed). Оценка из текущей записи не является окончательной, отображается только в истории пересдач и в сохраненных приказах-ведомостях. Если пересдачи со статусом completed нет, дисциплина считается не сданной. Если дисциплина была передана, то окончательной является оценка из другой записи, в которой поле repeatid ссылается на текущую запись.
Маршруты статусов
Правила описания маршрутов: описания возможностей перехода в новый статус на основании текущего статуса и условия, действительные только при переходе в новый статус из текущего статуса, группируются по текущему статусу, описания возможностей перехода в новый статус не зависящие от текущего статуса группируются по новому статусу.
Запланирован
Возможные переходы ИЗ этого статуса:
- Идет обучение
- Отменен
- Перезачет
- Приостановлен - этот переход нужен для того, чтобы при переводе учебного процесса из статуса "запланирован" в статус "идет" данная подписка не активировалась.
Идет обучение
Переход в этот статус из любого другого статуса в этот возможен только если приписанный учебный процесс указан, существует и имеет статус "идет обучение", а так же если подписка на учебную программу данного студента активна.
Возможные переходы ИЗ этого статуса:
- Успешно завершен (одновременно выставляется итоговая оценка)
- Неуспешно завершен
- Приостановлен
- Отменен
Переход в статус "перезачет" из статуса "идет обучение" невозможен, потому что преподаватель уже затратил работу на данного ученика, которую нужно учесть, чтобы не было неоднозначности в тарификации. Если преподаватель принял "перезачет" на основании других оценок, это его решение, не отражаемое в системе как перезачет.
Приостановлен
- Идет обучение
- Отменен
- Успешно завершен
- Неуспешно завершен
Отменен
Конечный статус
Успешно завершен
Возможные переходы ИЗ этого статуса:
- Неуспешно завершен - в случае, если студент пересдал итоговую оценку, то старая подписка должна быть переведена в статус "неуспешно завершен", а новая ссылаться на старую через repeatid
Перезачет
Возможные переходы ИЗ этого статуса:
- Неуспешно завершен - в случае, если студент пересдал итоговую оценку, то старая подписка должна быть переведена в статус "неуспешно завершен", а новая ссылаться на старую через repeatid
Неуспешно завершен
Конечный статус
API
get_list()
Получить список всех возможных статусов для подписки на предмет
Аргументы:
- (нет)
Возвращаемые значения:
- Массив, со списком всех возможных статусов в формате "обозначение" => "Перевод"
get_name()
Получить название статуса по его обозначению в базе данных
Аргументы:
- (string) $status - обозначение статуса латинскими буквами
Возвращаемые значения:
- (string|bool) - перевод для этого статуса, либо false, если он не обнаружен в списке допустимых
get_available()
Получить список статусов, в которые может перейти указанная подписка на предмет
Аргументы:
- $id - id подписки на предмет в таблице cpassed
Возвращаемые значения:
- (array|bool) - массив возможных состояний в формате ('обозначение' => 'первод') или false в случае когда запись не найдена. В случае, когда переход из этого статуса невозможен - возвращается пустой массив.
change()
Сменить статус подписки на предмет на указанный.
Аргументы:
- (int) $id - id учебного периода в таблице cpassed
- (string) $status - обозначение статуса латинскими буквами
- (array) $opt - Массив, где содержатся дополнительные параметры для смены статуса. По умолчанию null.
Возвращаемые значения:
- (bool) true - если статус удалось изменить, или false в случае ошибки
При обращении к функции change() выполняются дополнительные действия, указанные выше, в разделе "Маршруты статусов". При каждом изменении статуса данные записываются в таблицу statushistory.
init()
Запускается при вставке в таблицу cpassed новой записи. Автоматически назначает созданной подписке на предмет статус "запланирован" (plan).
Аргументы:
- $id - id только что созданной подписке на предмет в таблице cpassed
Возвращаемые значения:
- (bool) true если статус успешно назначен или false в случае ошибки