Разработка:storages/cpassed — различия между версиями
Alex (обсуждение | вклад) |
Konovalov (обсуждение | вклад) м (→Подробный формат полей в таблице:) |
||
(не показано 50 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
{{Infobox_Plugin | {{Infobox_Plugin | ||
− | | name = | + | | name = cpassed |
− | | type = | + | | type = storages |
}} | }} | ||
− | + | =Таблица в базе данных= | |
''cpassed'' - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки. | ''cpassed'' - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки. | ||
− | + | ===Подробный формат полей в таблице:=== | |
− | * cstreamid - id учебного процесса, по которому велось обучение | + | * cstreamid - id учебного процесса в таблице [[Разработка:storages/cstreams | cstreams ]], по которому велось обучение. |
− | * programmsbcid - id подписки контракта на программу обучения | + | * programmsbcid - id подписки контракта в таблице [[Разработка:storages/contracts | contracts ]] на программу обучения. |
− | * programmitemid - id дисциплины | + | * programmitemid - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]]. |
− | * studentid - id слушателя по таблице persons | + | * studentid - id слушателя по таблице [[Разработка:storages/persons | persons ]]. |
− | * grade | + | * agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. Не обязательное поле (для заполнения). По умолчанию NULL. При зачислении и отчислении из группы изменяется его значение автоматически. При отчислении из группы поле становится равным нулю (0). При индивидуальном обучении - NULL. На основании этого принимается решение подписке/отписке на предмет. |
− | * gradelevel - уровень оценки (оценка не идет в | + | * grade - итоговая отметка по курсу. |
− | * credit - количество кредитов, полученное за прохождение дисциплины | + | * gradelevel - уровень оценки (оценка не идет в кондуит, дисциплина, курсовая работа, практика, междисциплинарный экзамен, дипломная работа). Берется из [[Разработка:storages/programmitems | programmitems ]]. |
− | * notice - текстовое пояснение об источнике оценки при перезачете | + | * credit - количество кредитов, полученное за прохождение дисциплины. |
− | * repeatid - id предыдущей | + | * notice - текстовое пояснение об источнике оценки при перезачете. |
− | * typesync - тип синхронизации (выставление вручную, синхронизация с moodle) | + | * repeatid - id предыдущей подписки на дисциплину, если обучение выполняется повторно (пересдача или повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан"). Пересдачей может считаться только пересдача дисциплины, пройденной в рамках этой же подписки на учебную программу. Если было несколько пересдач данной дисциплины в данной учебной программе, то все они ссылаются на один и тот же исходный cpassedid. |
− | * mdlinstance - id задания в moodle, с которым выполнялась синхронизация | + | * typesync - тип синхронизации (выставление вручную, синхронизация с moodle). |
− | * teacherid - id сотрудника по справочнику persons, вручную выставившего итоговую отметку | + | * mdlinstance - id задания в moodle, с которым выполнялась синхронизация. |
− | * status - список статусов указан в одноименном плагине рабочих процессов | + | * teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную выставившего итоговую отметку. |
+ | * ageid - id периода в таблице [[Разработка:storages/ages | ages ]] по которому велось обучение. | ||
+ | * orderid - id приказа в таблице [[Разработка:storages/orders | orders ]], согласно которому была выставлена оценка. | ||
+ | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/cpassed | cpassed ]]. | ||
+ | * begindate - дата начала действия подписки. | ||
+ | * enddate - дата окончания действия подписки. | ||
+ | * sbcorderid - id приказа в таблице [[Разработка:storages/orders | orders ]], которым учащийся был подписан на дисциплину. | ||
+ | * learninghistoryid - id записи в таблице [[Разработка:storages/learninghistory | learninghistory ]], соответствующая текущей параллели данной подписки. | ||
− | + | =Дополнительные методы:= | |
− | '''get_cstream_students()''' | + | ===='''get_actual_reoffset_cpassed($cpasseds)'''==== |
+ | |||
+ | Возвращает только последнюю пересдачу (по времени) из массива пересдач. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cpasseds(array) - записи, полученные по одной подписке и дисциплине. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (object) - объект последней пересдачи | ||
+ | * (bool) - false, в случае ошибки | ||
+ | ''Структура работы:'' | ||
+ | # в эту функцию должны передаваться только cpassed->status == 'reoffset' | ||
+ | |||
+ | |||
+ | ===='''get_cstream_students($csid, $status = null)'''==== | ||
Получает список всех подписок студентов, приписаных к одному предмето-потоку. | Получает список всех подписок студентов, приписаных к одному предмето-потоку. | ||
− | ''Аргументы:'' | + | ''Аргументы:'' |
− | * $csid(int) - id учебного потока. | + | * $csid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. |
− | * $status(string) - статус подписки, по умолчанию - | + | * $status(string) - статус подписки, по умолчанию - null. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) список подписок на учебный поток. | + | * (array) - список подписок на учебный поток. |
− | * (bool) false если подписки не найдены. | + | * (bool) - false, если подписки не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список подписок: | * формируем SQL-запрос и возвращаем список подписок: | ||
Строка 38: | Строка 58: | ||
** если статус не указывается или указывается как null - подписки с любым статусом. | ** если статус не указывается или указывается как null - подписки с любым статусом. | ||
− | '''get_cpasseds_student()''' | + | |
+ | ===='''get_cstream_agroup($cstreamid, $agroupid, $status = null)'''==== | ||
+ | |||
+ | Получаеть список всех подписок студентов к указанному учебному потоку или только подписок с указанным статусом. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | * $agroupid(int) - id академической группы в таблице [[Разработка:storages/cstreams | agroups ]]. | ||
+ | * $status(string) - статус учебной дисциплины. по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из таблица. | ||
+ | * (bool) - false, если записи не найдены. | ||
+ | |||
+ | |||
+ | ===='''get_cpasseds_student($stid, $status = 'active')'''==== | ||
Получает список всех подписок для слушателя. | Получает список всех подписок для слушателя. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $stid(int) - id студента | + | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]] |
− | * $status(string) - статус подписки, по умолчанию - | + | * $status(string) - статус подписки, по умолчанию - 'active'. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) список подписок на учебный поток. | + | * (array) - список подписок на учебный поток. |
− | * (bool) false если подписки не найдены. | + | * (bool) - false, если подписки не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список подписок: | * формируем SQL-запрос и возвращаем список подписок: | ||
** если указывается статус - подписки с указанным статусом, | ** если указывается статус - подписки с указанным статусом, | ||
** если статус указывается null - подписки с любым статусом, | ** если статус указывается null - подписки с любым статусом, | ||
− | ** если статус не указывается - подписки со статусом | + | ** если статус не указывается - подписки со статусом active. |
+ | |||
− | '''get_cpassed_programm()''' | + | ===='''get_cpassed_programm($stid, $prid, $status = 'complete')'''==== |
Получает список дисциплин, изученных слушателем в рамках учебной программы. | Получает список дисциплин, изученных слушателем в рамках учебной программы. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $stid(int) - id студента. | + | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. |
− | * $prid(int) - id подписки на программу. | + | * $prid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. |
− | * $status(string) - статус подписки, по умолчанию - | + | * $status(string) - статус подписки, по умолчанию - 'complete'. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) список подписок на учебный поток. | + | * (array) - список подписок на учебный поток. |
− | * (bool) false если подписки не найдены. | + | * (bool) - false, если подписки не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список подписок: | * формируем SQL-запрос и возвращаем список подписок: | ||
Строка 72: | Строка 107: | ||
− | '''get_cpasseds_programmitem()''' | + | ===='''get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)'''==== |
Получает подписки на дисциплину по id слушателя и id дисциплины. | Получает подписки на дисциплину по id слушателя и id дисциплины. | ||
− | ''Аргументы:'' | + | ''Аргументы:'' |
− | * $stid(int) - id студента. | + | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. |
− | * $prid(int) - id дисциплины. | + | * $prid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]]. |
− | * $status(string) - название статуса подписки, по умолчанию 'complete' | + | * $status(string) - название статуса подписки, по умолчанию - 'complete' |
* $levelgrade(string) - уровень оценки, по умолчанию - null. | * $levelgrade(string) - уровень оценки, по умолчанию - null. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
Строка 91: | Строка 126: | ||
** если статус указан как null или false, то вернутся подписки с любым статусом | ** если статус указан как null или false, то вернутся подписки с любым статусом | ||
− | ''' | + | ===='''get_cpasseds_reoffset($conds=null, $countonly=false, $limitfrom, $limitnum)'''==== |
− | + | Возвращает список учебных потоков по заданным критериям, упрощённая версия get_listing() с поиском только по таблице cpassed для "Ведомости перезачёта оценок" | |
− | ''Аргументы:'' | + | ''Аргументы:'' |
− | * $ | + | * $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей. |
− | * $ | + | * $limitnum(int) - сколько записей нужно извлечь из базы. |
− | * $ | + | * $conds(object) - объект со списком свойств, по которым будет происходить поиск. |
+ | * $countonly(bool) - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (bool) | + | * (array) - массив записей из базы. |
+ | * (int) - количество записей, если $countonly=true. | ||
+ | * (bool) - false, в случае ошибки. | ||
''Структура работы:'' | ''Структура работы:'' | ||
− | # | + | # составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing() |
− | # ( | + | # Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей |
− | # | + | # Поиск производится только по таблице cpassed, без проверки на целостность базы данных (с помощью выборки из других таблиц) |
+ | # Если ложно - то возвращаем список записей | ||
− | '''insert_grade_reoffset()''' | + | ===='''insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)'''==== |
− | Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования) | + | Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). |
− | ''Аргументы:'' | + | ''Аргументы:'' |
− | * $stid(int) - id студента. | + | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. |
− | * $prid(int) - id дисциплины. | + | * $prid(int) - id дисциплины в таблице [[Разработка:storages/departments | departments ]]. |
− | * $cpid(int) - id подписки на программу. | + | * $cpid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. |
* $grade(int) - итоговая оценка. | * $grade(int) - итоговая оценка. | ||
* $comment(string) - коментарий. | * $comment(string) - коментарий. | ||
Строка 119: | Строка 158: | ||
* $initialid(int) - id исходной подписки. | * $initialid(int) - id исходной подписки. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (int) id добавленной записи | + | * (int) id добавленной записи. |
− | * (bool) false если добавление не удалось | + | * (bool) false если добавление не удалось. |
''Структура работы:'' | ''Структура работы:'' | ||
# если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД. | # если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД. | ||
# формируем новый объект в БД. | # формируем новый объект в БД. | ||
# вставляем сформированную запись в таблицу БД. | # вставляем сформированную запись в таблицу БД. | ||
+ | |||
+ | |||
+ | ===='''insert_grade_register_reoffset($programmsbcid, $programmitemid, $studentid, $grade, $orderid, $teacherid, $date)'''==== | ||
+ | |||
+ | Добавить оценку в режиме "перезачета" (для приказа "Ведомость для перезачёта"). В случае если была активная подписка -- она закрывается. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | * $programmitemid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]]. | ||
+ | * $studentid(int) - id студента (personid) в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $grade(int) - итоговая оценка. | ||
+ | * $orderid(int) - id приказа в таблице [[Разработка:storages/orders | orders ]], по которому выставляется перезачёт. | ||
+ | * $teacherid(int) - personid из таблицы [[Разработка:storages/persons | persons ]], кто ставил оценку | ||
+ | * $date(int) - дата перезачёта | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) id добавленной записи. | ||
+ | * (bool) false если добавление не удалось. | ||
+ | ''Структура работы:'' | ||
+ | # Cоздаются cpassed-ы не привязанные к периоду (ageid=0). | ||
+ | # Если у студента уже был cpassed по этой дисциплине, перезачет ссылается на него полем repeatid (если несколько - то на самый первый, если старая подписка была активна - закрывается с неуспешным статусом). | ||
+ | |||
+ | |||
+ | ===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''==== | ||
+ | |||
+ | Получает список учебных потоков по заданным критериям. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $limitfrom - начиная с какой записи просматривается фрагмент списка записей. | ||
+ | * $limitnum - сколько записей нужно извлечь из базы. | ||
+ | * $conds - объект со списком свойств, по которым будет происходить поиск. | ||
+ | * $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из базы. | ||
+ | * (int) - количество записей, если $countonly=true. | ||
+ | * (bool) - false, в случае ошибки. | ||
+ | ''Структура работы:'' | ||
+ | # составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing() | ||
+ | # Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей | ||
+ | # Если ложно - то возвращаем список записей | ||
+ | |||
+ | |||
+ | ===='''unsign_student_one_cpassed($studentid, $cstreamid)'''==== | ||
+ | |||
+ | Отписывает заданного студента от заданного учебного потока | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $studentid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (boоl) - true, в случае успеха и falsе, в остальных. | ||
+ | |||
+ | |||
+ | ===='''unsign_agroups_from_cstream($cstreamid)'''==== | ||
+ | |||
+ | Удаляет всех "лишних" подписок из потока, которые были записаны в составе группы, связи с которой сейчас нет. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (boоl) - true, в случае успеха и falsе, в остальных. | ||
+ | |||
+ | |||
+ | unsign_student_all_cpassed($studentid, $programmsbcid) | ||
+ | |||
+ | Отписывает студента от всех потоков программы | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $studentid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (boоl) - true, в случае успеха и falsе, в остальных | ||
+ | |||
+ | |||
+ | ===='''unsign_students_all_cpassed($students)'''==== | ||
+ | |||
+ | Отписывает нескольких студентов от всех потоков программы | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $students(array) - массив (id подписки на программу студента в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]=>id студента в таблице [[Разработка:storages/persons | persons ]]). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (boоl) - true, в случае успеха и falsе, в остальных. | ||
+ | |||
+ | |||
+ | ===='''get_students_without_agroup()'''==== | ||
+ | |||
+ | Получить список всех подписок, которые не принадлежат ни к одной группе. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * ''(нет)'' | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) | ||
+ | * (bool) - false, если ничего не нашлось. | ||
+ | ''Структура работы:'' | ||
+ | * Возвращаются все записи таблицы cpassed, имеющие статус plan или active в которых поле agroupid равно: | ||
+ | ** NULL (null-значение) | ||
+ | ** "" (пустой строке) | ||
+ | ** 0 | ||
+ | |||
+ | |||
+ | ===='''unsign_students_without_agroup()'''==== | ||
+ | |||
+ | Отписать всех учеников, не имеющих подписки ни на одну группу | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * ''(нет)'' | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если изменение всех статусов прошло нормально или false, если в процессе работы произошли ошибки. | ||
+ | ''Структура работы:'' | ||
+ | * Для получения списка подписок, не имеющих связи с группой вызывается функция get_students_without_agroup() | ||
+ | ** Если таких подписок нет - возвращается true | ||
+ | ** Если подписки есть - то в цикле выставляем каждой записи статус "canceled" (через обращение к плагину workflow) | ||
+ | |||
+ | |||
+ | is_already_enroled($studentid, $cstreamid, $status = null) | ||
+ | |||
+ | Проверяет, подписан ли уже этот ученик на переданный поток из поиска исключаются записи с переданным статусом. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $studentid(int) - id ученика в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | * $status(string) - код статуса | ||
+ | * $status(array) - массив статусов, или null, если их нет, по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - id записи если такая запись уже есть. | ||
+ | * (bool) - false, если ученик еще не подписан. | ||
+ | |||
+ | |||
+ | |||
+ | ===='''sign_student_on_cstream($cstreamid, $programmsbcid)'''==== | ||
+ | |||
+ | Подписывает одного ученика на один учебный поток. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstreamid(int) - id учебного потока в таблице в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | * $programmsbcid(int) - id подписки студента на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - id записи если подписка произошла успешно (или уже существует). | ||
+ | * (bool) - false, в случае ошибки. | ||
+ | |||
+ | |||
+ | ===='''sign_student_on_all_cstreams($programmsbcid, $ageid = null)'''==== | ||
+ | |||
+ | Подписыает студента на все потоки программы по данному периоду | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmsbcid(int) - id подписку студента на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | * $ageid(int) - id текущего периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если ученик успешно подписан на потоки, или потоков в программе посто нет и false, в остальных случаях. | ||
+ | |||
+ | |||
+ | ===='''sign_all_agroups_on_all_cstreams($programmid, $ageid)'''==== | ||
+ | |||
+ | Подписывает все группы на потоки программы по данному периоду | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmid(int) - id программы, на которую создаем подписки на предмет в таблице [[Разработка:storages/programms | programms ]]. | ||
+ | * $ageid(int) - id текущего периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все операции прошли успешно и false, в случае ошибки. | ||
+ | |||
+ | |||
+ | ===='''sign_agroup_on_all_cstreams($agroupid, $programmid, $ageid)'''==== | ||
+ | |||
+ | Подписывает одну академическую группу на все потоки указанной программы в переданом периоде. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id учебной группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $programmid(int) - id учебной программы в таблице [[Разработка:storages/programms | programms ]]. | ||
+ | * $ageid(int) - id периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все операции прошли успешно, и false, в случае ошибки. | ||
+ | |||
+ | |||
+ | |||
+ | ===='''unsign_students_without_real_agroup($cstreamlink)'''==== | ||
+ | |||
+ | Отменяет подписки учеников, у которых группа, указанная в подписке на программу ([[Разработка:storages/programmsbcs | programmsbcs ]]), не совпадает с группой, указанной в таблице связей учебных потоков с группами ([[Разработка:storages/cstreamlinks | cstreamlinks ]]). | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (object)$cstreamlink - объект в таблице [[Разработка:storages/cstreamlinks | cstreamlinks ]] | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок. | ||
+ | |||
+ | |||
+ | ===='''syncronize_agroups_with_cstream($cstreamid)'''==== | ||
+ | |||
+ | Синхронизирует все группы, связанные с данным потоком. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstreamid(int) - id потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок. | ||
+ | |||
+ | |||
+ | ===='''syncronize_agroup_with_cstreams($agroupid)'''==== | ||
+ | |||
+ | Синхронизирует группу, со связанными с нею потоками. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок. | ||
+ | |||
+ | |||
+ | ===='''set_final_grade($cpassedid, $grade = null, $orderid = null)'''==== | ||
+ | |||
+ | Выставляет итоговую оценку, и в зависимости от нее перевести подписку в новый статус. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cpassedid(int) - id подписки. | ||
+ | * $grade(string) - выставляемая итоговая оценка, если не указана, то подписка автоматически переходит в статус неуспешно завершен, по умолчанию - null. | ||
+ | * $orderid(int) - id приказа в таблице [[Разработка:storages/orders | orders ]], на основании которого происходит выставление оценки, по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если все прошло успешно и false, в случае ошибки. | ||
+ | |||
+ | |||
+ | ===='''get_last_successor($cpassedid)'''==== | ||
+ | |||
+ | Находит последнего наследника данной подписки. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cpassedid(int) - id подписки. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - id последнего наследника подписки. | ||
+ | |||
+ | |||
+ | ===='''get_cpassed_on_programmsbcid($id, $status = 'active')'''==== | ||
+ | |||
+ | Получает информацию о подписках на дисциплину по подписке на программу. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | * $status(string) - статус подписок, информацию о которых требуется найти, по умолчанию - null. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив с информацией о подписках на дисциплину. | ||
+ | * (bool) - false, если произошла ошибка. | ||
+ | |||
+ | |||
+ | ===='''get_cpassed_on_studentid_programmsbcid_active_complete($programmsbcid, $programmitemid)'''==== | ||
+ | |||
+ | Возвращает список активных или завершённых подписок на дисциплину по номеру подписки (номер студента берётся из неё) на программу. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmsbcid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | * $programmitemid(int) - id дисциплины в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив с информацией о подписках на дисциплину. | ||
+ | * (bool) - false, если произошла ошибка. | ||
+ | |||
===Планы:=== | ===Планы:=== | ||
+ | |||
+ | * <s>метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)</s> | ||
+ | * <s>метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)</s> | ||
+ | * <s>метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)</s> | ||
+ | |||
+ | =События= | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/programmsbcs|programmsbcs]] | ||
+ | |changeagroup | ||
+ | |Массив, содержащий: | ||
+ | * в поле 'oldagroup' id старой группы | ||
+ | * в поле 'newagroup' id новой группы | ||
+ | * в поле 'programmsbc' объект из таблицы programmsbcs | ||
+ | ''Пример:'' array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object) | ||
+ | |Обрабатывается событие изменения группы, вызывается функция [[#change_group()|change_group()]] | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/programmsbcs|cstreamlinks]] | ||
+ | |insert | ||
+ | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
+ | ''Пример:'' array('new' => $dataobject) | ||
+ | |По этому событию выполняется синхронизация подписок группы при помощи функции [[#syncronize_agroup_with_cstream()|syncronize_agroup_with_cstream()]] | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/programmsbcs|cstreamlinks]] | ||
+ | |delete | ||
+ | |Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы | ||
+ | ''Пример:'' array('old' => $dataobject) | ||
+ | |По этому событию удаляются подписки при помощи функции [[#unsign_agroups_from_cstream()|unsign_agroups_from_cstream()]] | ||
+ | |- | ||
+ | |storage | ||
+ | |[[Разработка:storages/cstreams|cstreams]] | ||
+ | |changestatus | ||
+ | | | ||
+ | |При изменении статуса учебного потока изменяет статус всех подписок на этот поток, через обращение к [[Разработка:workflows/cpassed|workflows/cpassed]]. | ||
+ | |} | ||
+ | |||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |cpassed | ||
+ | |insert | ||
+ | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
+ | ''Пример:'' array('new' => $dataobject) | ||
+ | |Генерируется каждый раз при вставке новой записи в таблицу cpassed. | ||
+ | |- | ||
+ | |storage | ||
+ | |cpassed | ||
+ | |update | ||
+ | |Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи. | ||
+ | ''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new) | ||
+ | |Генерируется каждый раз при обновлении записи в таблице cpassed. | ||
+ | |- | ||
+ | |storage | ||
+ | |cpassed | ||
+ | |delete | ||
+ | |Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы | ||
+ | ''Пример:'' array('old' => $dataobject) | ||
+ | |Генерируется каждый раз при удалении записи из таблицы cpassed. | ||
+ | |} | ||
+ | |||
+ | =Задания= | ||
+ | |||
+ | {| border="1" | ||
+ | |+ Таблица заданий, которые выполняет этот плагин | ||
+ | ! Код задания | ||
+ | ! Дополнительный параметр | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |resync_age_cpassed | ||
+ | |Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]] | ||
+ | |Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса. | ||
+ | |- | ||
+ | |active_to_suspend_cpassed | ||
+ | |Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]] | ||
+ | |Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплинах. Работает в паре с '''suspend_to_active_cpassed'''. | ||
+ | |- | ||
+ | |suspend_to_active_cpassed | ||
+ | |Обязателен. Указывается id периода из таблицы [[Разработка:storages/ages | ages ]] | ||
+ | |Находит все приостановленные подписки на дисциплины в указанном периоде, после чего каждую из них активирует. Необходимо для записи учащихся на курс Moodle, если после смены курса Moodle в дисциплинах. Работает в паре с '''active_to_suspend_cpassed'''. | ||
+ | |- | ||
+ | |comparecpassed | ||
+ | |Необязателен | ||
+ | |Находит все незавершенные подписки на дисциплины, после чего каждую из них синхронизирует с учебным процессом, выставляя в подписке тот же id дисциплины, что и в процессе. Необходимо для сопоставления правильной дисциплины в подписке и процессе, если дисциплину в процессе сменили уже во время обучения. | ||
+ | |- | ||
+ | |cancaled_repeatid_to_null | ||
+ | |Необязателен | ||
+ | |Находит все отмененные подписки на дисциплины, у которых есть родители, и разрывает с ними связь. Необходимо для разрыва связи активный родитель->отмененный наследник, если по какой-то причине такие связи были созданы. | ||
+ | |- | ||
+ | |fill_learninghistoryid | ||
+ | |Необязателен | ||
+ | |Находит все подписки с пустым learninghistoryid и обновляет это поле, связывая его с записью в таблице [[Разработка:storages/learninghistory | learninghistory ]]. | ||
+ | |} | ||
+ | |||
+ | [[Категория:Плагины обработки todo | storages/cpassed]] |
Текущая версия на 11:34, 14 августа 2014
Плагин | |
Название | cpassed |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 get_actual_reoffset_cpassed($cpasseds)
- 2.2 get_cstream_students($csid, $status = null)
- 2.3 get_cstream_agroup($cstreamid, $agroupid, $status = null)
- 2.4 get_cpasseds_student($stid, $status = 'active')
- 2.5 get_cpassed_programm($stid, $prid, $status = 'complete')
- 2.6 get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)
- 2.7 get_cpasseds_reoffset($conds=null, $countonly=false, $limitfrom, $limitnum)
- 2.8 insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)
- 2.9 insert_grade_register_reoffset($programmsbcid, $programmitemid, $studentid, $grade, $orderid, $teacherid, $date)
- 2.10 get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
- 2.11 unsign_student_one_cpassed($studentid, $cstreamid)
- 2.12 unsign_agroups_from_cstream($cstreamid)
- 2.13 unsign_students_all_cpassed($students)
- 2.14 get_students_without_agroup()
- 2.15 unsign_students_without_agroup()
- 2.16 sign_student_on_cstream($cstreamid, $programmsbcid)
- 2.17 sign_student_on_all_cstreams($programmsbcid, $ageid = null)
- 2.18 sign_all_agroups_on_all_cstreams($programmid, $ageid)
- 2.19 sign_agroup_on_all_cstreams($agroupid, $programmid, $ageid)
- 2.20 unsign_students_without_real_agroup($cstreamlink)
- 2.21 syncronize_agroups_with_cstream($cstreamid)
- 2.22 syncronize_agroup_with_cstreams($agroupid)
- 2.23 set_final_grade($cpassedid, $grade = null, $orderid = null)
- 2.24 get_last_successor($cpassedid)
- 2.25 get_cpassed_on_programmsbcid($id, $status = 'active')
- 2.26 get_cpassed_on_studentid_programmsbcid_active_complete($programmsbcid, $programmitemid)
- 2.27 Планы:
- 3 События
- 4 Задания
Таблица в базе данных
cpassed - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.
Подробный формат полей в таблице:
- cstreamid - id учебного процесса в таблице cstreams , по которому велось обучение.
- programmsbcid - id подписки контракта в таблице contracts на программу обучения.
- programmitemid - id дисциплины в таблице programmitems .
- studentid - id слушателя по таблице persons .
- agroupid - id академической группы в таблице agroups . Не обязательное поле (для заполнения). По умолчанию NULL. При зачислении и отчислении из группы изменяется его значение автоматически. При отчислении из группы поле становится равным нулю (0). При индивидуальном обучении - NULL. На основании этого принимается решение подписке/отписке на предмет.
- grade - итоговая отметка по курсу.
- gradelevel - уровень оценки (оценка не идет в кондуит, дисциплина, курсовая работа, практика, междисциплинарный экзамен, дипломная работа). Берется из programmitems .
- credit - количество кредитов, полученное за прохождение дисциплины.
- notice - текстовое пояснение об источнике оценки при перезачете.
- repeatid - id предыдущей подписки на дисциплину, если обучение выполняется повторно (пересдача или повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан"). Пересдачей может считаться только пересдача дисциплины, пройденной в рамках этой же подписки на учебную программу. Если было несколько пересдач данной дисциплины в данной учебной программе, то все они ссылаются на один и тот же исходный cpassedid.
- typesync - тип синхронизации (выставление вручную, синхронизация с moodle).
- mdlinstance - id задания в moodle, с которым выполнялась синхронизация.
- teacherid - id сотрудника по справочнику persons , вручную выставившего итоговую отметку.
- ageid - id периода в таблице ages по которому велось обучение.
- orderid - id приказа в таблице orders , согласно которому была выставлена оценка.
- status - список статусов указан в одноименном плагине рабочих процессов cpassed .
- begindate - дата начала действия подписки.
- enddate - дата окончания действия подписки.
- sbcorderid - id приказа в таблице orders , которым учащийся был подписан на дисциплину.
- learninghistoryid - id записи в таблице learninghistory , соответствующая текущей параллели данной подписки.
Дополнительные методы:
get_actual_reoffset_cpassed($cpasseds)
Возвращает только последнюю пересдачу (по времени) из массива пересдач.
Аргументы:
- $cpasseds(array) - записи, полученные по одной подписке и дисциплине.
Возвращаемые значения:
- (object) - объект последней пересдачи
- (bool) - false, в случае ошибки
Структура работы:
- в эту функцию должны передаваться только cpassed->status == 'reoffset'
get_cstream_students($csid, $status = null)
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
Аргументы:
- $csid(int) - id учебного потока в таблице cstreams .
- $status(string) - статус подписки, по умолчанию - null.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус не указывается или указывается как null - подписки с любым статусом.
get_cstream_agroup($cstreamid, $agroupid, $status = null)
Получаеть список всех подписок студентов к указанному учебному потоку или только подписок с указанным статусом.
Аргументы:
- $cstreamid(int) - id учебного потока в таблице cstreams .
- $agroupid(int) - id академической группы в таблице agroups .
- $status(string) - статус учебной дисциплины. по умолчанию - null.
Возвращаемые значения:
- (array) - массив записей из таблица.
- (bool) - false, если записи не найдены.
get_cpasseds_student($stid, $status = 'active')
Получает список всех подписок для слушателя.
Аргументы:
- $stid(int) - id студента в таблице persons
- $status(string) - статус подписки, по умолчанию - 'active'.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом active.
get_cpassed_programm($stid, $prid, $status = 'complete')
Получает список дисциплин, изученных слушателем в рамках учебной программы.
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id подписки на программу в таблице programmsbcs .
- $status(string) - статус подписки, по умолчанию - 'complete'.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом complete.
get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)
Получает подписки на дисциплину по id слушателя и id дисциплины.
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id дисциплины в таблице programmitems .
- $status(string) - название статуса подписки, по умолчанию - 'complete'
- $levelgrade(string) - уровень оценки, по умолчанию - null.
Возвращаемые значения:
- (array) массив подписок на дисциплину.
- (bool) false если подписка не найдена или слушатель ее еще не изучил.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается уровень оценки - подписки с указанным уровнем оценки,
- если уровень оценки не указывается или указывается как null - подписки с любым уровнем оценки.
- если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
- если статус указан как null или false, то вернутся подписки с любым статусом
get_cpasseds_reoffset($conds=null, $countonly=false, $limitfrom, $limitnum)
Возвращает список учебных потоков по заданным критериям, упрощённая версия get_listing() с поиском только по таблице cpassed для "Ведомости перезачёта оценок"
Аргументы:
- $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей.
- $limitnum(int) - сколько записей нужно извлечь из базы.
- $conds(object) - объект со списком свойств, по которым будет происходить поиск.
- $countonly(bool) - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.
Возвращаемые значения:
- (array) - массив записей из базы.
- (int) - количество записей, если $countonly=true.
- (bool) - false, в случае ошибки.
Структура работы:
- составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
- Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
- Поиск производится только по таблице cpassed, без проверки на целостность базы данных (с помощью выборки из других таблиц)
- Если ложно - то возвращаем список записей
insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)
Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования).
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id дисциплины в таблице departments .
- $cpid(int) - id подписки на программу в таблице programmsbcs .
- $grade(int) - итоговая оценка.
- $comment(string) - коментарий.
- $status(string) - статус - перезачет(reoffset) или пересдача(repeating).
- $initialid(int) - id исходной подписки.
Возвращаемые значения:
- (int) id добавленной записи.
- (bool) false если добавление не удалось.
Структура работы:
- если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
- формируем новый объект в БД.
- вставляем сформированную запись в таблицу БД.
insert_grade_register_reoffset($programmsbcid, $programmitemid, $studentid, $grade, $orderid, $teacherid, $date)
Добавить оценку в режиме "перезачета" (для приказа "Ведомость для перезачёта"). В случае если была активная подписка -- она закрывается.
Аргументы:
- $programmsbcid(int) - id подписки на программу в таблице programmsbcs .
- $programmitemid(int) - id дисциплины в таблице programmitems .
- $studentid(int) - id студента (personid) в таблице persons .
- $grade(int) - итоговая оценка.
- $orderid(int) - id приказа в таблице orders , по которому выставляется перезачёт.
- $teacherid(int) - personid из таблицы persons , кто ставил оценку
- $date(int) - дата перезачёта
Возвращаемые значения:
- (int) id добавленной записи.
- (bool) false если добавление не удалось.
Структура работы:
- Cоздаются cpassed-ы не привязанные к периоду (ageid=0).
- Если у студента уже был cpassed по этой дисциплине, перезачет ссылается на него полем repeatid (если несколько - то на самый первый, если старая подписка была активна - закрывается с неуспешным статусом).
get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
Получает список учебных потоков по заданным критериям.
Аргументы:
- $limitfrom - начиная с какой записи просматривается фрагмент списка записей.
- $limitnum - сколько записей нужно извлечь из базы.
- $conds - объект со списком свойств, по которым будет происходить поиск.
- $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.
Возвращаемые значения:
- (array) - массив записей из базы.
- (int) - количество записей, если $countonly=true.
- (bool) - false, в случае ошибки.
Структура работы:
- составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
- Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
- Если ложно - то возвращаем список записей
unsign_student_one_cpassed($studentid, $cstreamid)
Отписывает заданного студента от заданного учебного потока
Аргументы:
- $studentid(int) - id студента в таблице persons .
- $cstreamid(int) - id учебного потока в таблице cstreams .
Возвращаемые значения:
- (boоl) - true, в случае успеха и falsе, в остальных.
unsign_agroups_from_cstream($cstreamid)
Удаляет всех "лишних" подписок из потока, которые были записаны в составе группы, связи с которой сейчас нет.
Аргументы:
- $cstreamid(int) - id учебного потока в таблице cstreams .
Возвращаемые значения:
- (boоl) - true, в случае успеха и falsе, в остальных.
unsign_student_all_cpassed($studentid, $programmsbcid)
Отписывает студента от всех потоков программы
Аргументы:
- $studentid(int) - id студента в таблице persons .
- $programmsbcid(int) - id подписки на программу в таблице programmsbcs .
Возвращаемые значения:
- (boоl) - true, в случае успеха и falsе, в остальных
unsign_students_all_cpassed($students)
Отписывает нескольких студентов от всех потоков программы
Аргументы:
- $students(array) - массив (id подписки на программу студента в таблице programmsbcs =>id студента в таблице persons ).
Возвращаемые значения:
- (boоl) - true, в случае успеха и falsе, в остальных.
get_students_without_agroup()
Получить список всех подписок, которые не принадлежат ни к одной группе.
Аргументы:
- (нет)
Возвращаемые значения:
- (array)
- (bool) - false, если ничего не нашлось.
Структура работы:
- Возвращаются все записи таблицы cpassed, имеющие статус plan или active в которых поле agroupid равно:
- NULL (null-значение)
- "" (пустой строке)
- 0
unsign_students_without_agroup()
Отписать всех учеников, не имеющих подписки ни на одну группу
Аргументы:
- (нет)
Возвращаемые значения:
- (bool) - true, если изменение всех статусов прошло нормально или false, если в процессе работы произошли ошибки.
Структура работы:
- Для получения списка подписок, не имеющих связи с группой вызывается функция get_students_without_agroup()
- Если таких подписок нет - возвращается true
- Если подписки есть - то в цикле выставляем каждой записи статус "canceled" (через обращение к плагину workflow)
is_already_enroled($studentid, $cstreamid, $status = null)
Проверяет, подписан ли уже этот ученик на переданный поток из поиска исключаются записи с переданным статусом.
Аргументы:
- $studentid(int) - id ученика в таблице persons .
- $cstreamid(int) - id учебного потока в таблице cstreams .
- $status(string) - код статуса
- $status(array) - массив статусов, или null, если их нет, по умолчанию - null.
Возвращаемые значения:
- (int) - id записи если такая запись уже есть.
- (bool) - false, если ученик еще не подписан.
sign_student_on_cstream($cstreamid, $programmsbcid)
Подписывает одного ученика на один учебный поток.
Аргументы:
- $cstreamid(int) - id учебного потока в таблице в таблице cstreams .
- $programmsbcid(int) - id подписки студента на программу в таблице programmsbcs .
Возвращаемые значения:
- (int) - id записи если подписка произошла успешно (или уже существует).
- (bool) - false, в случае ошибки.
sign_student_on_all_cstreams($programmsbcid, $ageid = null)
Подписыает студента на все потоки программы по данному периоду
Аргументы:
- $programmsbcid(int) - id подписку студента на программу в таблице programmsbcs .
- $ageid(int) - id текущего периода в таблице ages , по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если ученик успешно подписан на потоки, или потоков в программе посто нет и false, в остальных случаях.
sign_all_agroups_on_all_cstreams($programmid, $ageid)
Подписывает все группы на потоки программы по данному периоду
Аргументы:
- $programmid(int) - id программы, на которую создаем подписки на предмет в таблице programms .
- $ageid(int) - id текущего периода в таблице ages .
Возвращаемые значения:
- (bool) - true, если все операции прошли успешно и false, в случае ошибки.
sign_agroup_on_all_cstreams($agroupid, $programmid, $ageid)
Подписывает одну академическую группу на все потоки указанной программы в переданом периоде.
Аргументы:
- $agroupid(int) - id учебной группы в таблице agroups .
- $programmid(int) - id учебной программы в таблице programms .
- $ageid(int) - id периода в таблице ages .
Возвращаемые значения:
- (bool) - true, если все операции прошли успешно, и false, в случае ошибки.
unsign_students_without_real_agroup($cstreamlink)
Отменяет подписки учеников, у которых группа, указанная в подписке на программу ( programmsbcs ), не совпадает с группой, указанной в таблице связей учебных потоков с группами ( cstreamlinks ).
Аргументы:
- (object)$cstreamlink - объект в таблице cstreamlinks
Возвращаемые значения:
- (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
syncronize_agroups_with_cstream($cstreamid)
Синхронизирует все группы, связанные с данным потоком.
Аргументы:
- $cstreamid(int) - id потока в таблице cstreams .
Возвращаемые значения:
- (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
syncronize_agroup_with_cstreams($agroupid)
Синхронизирует группу, со связанными с нею потоками.
Аргументы:
- $agroupid(int) - id группы в таблице agroups .
Возвращаемые значения:
- (bool) - true, если все операции завершились успешно и false, в случае возникновения ошибок.
set_final_grade($cpassedid, $grade = null, $orderid = null)
Выставляет итоговую оценку, и в зависимости от нее перевести подписку в новый статус.
Аргументы:
- $cpassedid(int) - id подписки.
- $grade(string) - выставляемая итоговая оценка, если не указана, то подписка автоматически переходит в статус неуспешно завершен, по умолчанию - null.
- $orderid(int) - id приказа в таблице orders , на основании которого происходит выставление оценки, по умолчанию - null.
Возвращаемые значения:
- (bool) - true, если все прошло успешно и false, в случае ошибки.
get_last_successor($cpassedid)
Находит последнего наследника данной подписки.
Аргументы:
- $cpassedid(int) - id подписки.
Возвращаемые значения:
- (int) - id последнего наследника подписки.
get_cpassed_on_programmsbcid($id, $status = 'active')
Получает информацию о подписках на дисциплину по подписке на программу.
Аргументы:
- $id(int) - id подписки на программу в таблице programmsbcs .
- $status(string) - статус подписок, информацию о которых требуется найти, по умолчанию - null.
Возвращаемые значения:
- (array) - массив с информацией о подписках на дисциплину.
- (bool) - false, если произошла ошибка.
get_cpassed_on_studentid_programmsbcid_active_complete($programmsbcid, $programmitemid)
Возвращает список активных или завершённых подписок на дисциплину по номеру подписки (номер студента берётся из неё) на программу.
Аргументы:
- $programmsbcid(int) - id подписки на программу в таблице programmsbcs .
- $programmitemid(int) - id дисциплины в таблице programmsbcs .
Возвращаемые значения:
- (array) - массив с информацией о подписках на дисциплину.
- (bool) - false, если произошла ошибка.
Планы:
-
метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams) -
метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams) -
метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | programmsbcs | changeagroup | Массив, содержащий:
Пример: array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object) |
Обрабатывается событие изменения группы, вызывается функция change_group() |
storage | cstreamlinks | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
По этому событию выполняется синхронизация подписок группы при помощи функции syncronize_agroup_with_cstream() |
storage | cstreamlinks | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
По этому событию удаляются подписки при помощи функции unsign_agroups_from_cstream() |
storage | cstreams | changestatus | При изменении статуса учебного потока изменяет статус всех подписок на этот поток, через обращение к workflows/cpassed. |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | cpassed | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу cpassed. |
storage | cpassed | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице cpassed. |
storage | cpassed | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы cpassed. |
Задания
Код задания | Дополнительный параметр | Пояснение |
---|---|---|
resync_age_cpassed | Обязателен. Указывается id периода из таблицы ages | Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса. |
active_to_suspend_cpassed | Обязателен. Указывается id периода из таблицы ages | Находит все активные подписки на дисциплины в указанном периоде, после чего каждую из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплинах. Работает в паре с suspend_to_active_cpassed. |
suspend_to_active_cpassed | Обязателен. Указывается id периода из таблицы ages | Находит все приостановленные подписки на дисциплины в указанном периоде, после чего каждую из них активирует. Необходимо для записи учащихся на курс Moodle, если после смены курса Moodle в дисциплинах. Работает в паре с active_to_suspend_cpassed. |
comparecpassed | Необязателен | Находит все незавершенные подписки на дисциплины, после чего каждую из них синхронизирует с учебным процессом, выставляя в подписке тот же id дисциплины, что и в процессе. Необходимо для сопоставления правильной дисциплины в подписке и процессе, если дисциплину в процессе сменили уже во время обучения. |
cancaled_repeatid_to_null | Необязателен | Находит все отмененные подписки на дисциплины, у которых есть родители, и разрывает с ними связь. Необходимо для разрыва связи активный родитель->отмененный наследник, если по какой-то причине такие связи были созданы. |
fill_learninghistoryid | Необязателен | Находит все подписки с пустым learninghistoryid и обновляет это поле, связывая его с записью в таблице learninghistory . |