Разработка:storages/cstreams — различия между версиями
Yumeneco (обсуждение | вклад) (→Дополнительные методы:) |
DShtolin (обсуждение | вклад) (→Подробный формат полей в таблице:) |
||
(не показано 29 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
− | ===Таблица в базе данных | + | {{Infobox_Plugin |
+ | | name = cstreams | ||
+ | | type = storages | ||
+ | }} | ||
+ | |||
+ | =Таблица в базе данных= | ||
''cstreams'' - учебный поток. Представляет учебный процесс, идущий по учебной дисциплине/предмету в течение одного учебного периоду с конкретным преподавателем, одним или несколькими учащимися или группой. | ''cstreams'' - учебный поток. Представляет учебный процесс, идущий по учебной дисциплине/предмету в течение одного учебного периоду с конкретным преподавателем, одним или несколькими учащимися или группой. | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * ageid - учебный период | + | * ageid - учебный период в таблице [[Разработка:storages/ages | ages ]] |
− | * programmitemid - дисциплина | + | * programmitemid - дисциплина в таблице [[Разработка:storages/programmitems | programmitems ]] |
− | * teacherid - id преподавателя | + | * [больше не используется] teacherid - id преподавателя в таблице [[Разработка:storages/persons | persons ]]. После создания поля appointmentid стало ненужным. Все старые обращения к этому полю будут переделаны на обращения к appointmentid, при создании новых обращений они должны обращаться к appointmentid. После переработки старых методов данное поле удалиться. |
− | * departmentid - подразделение, которому принадлежит учебный процесс | + | * departmentid - подразделение, которому принадлежит учебный процесс в таблице [[Разработка:storages/departments | departments ]] |
+ | * appointmentid - id назначения на должность в таблице [[Разработка:storages/appointments | appointments ]]. | ||
* mdlgroup - id группы moodle, соответствующей учебному потоку | * mdlgroup - id группы moodle, соответствующей учебному потоку | ||
− | * | + | * eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, по-умолчанию берется из programmitems, если там не указано - из ages. Нужны для подсчета часов при составлении расписания. |
− | * begindate - дата и время, когда учебный процесс был впервые переведен в состояние "идет обучение" по UTC | + | * begindate - дата и время, когда учебный процесс был впервые переведен в состояние "идет обучение" по [http://ru.wikipedia.org/wiki/UTC UTC] |
− | * enddate - дата и время окончания по UTC, когда учебный процесс был в последний раз выведен из состояния "идет | + | * enddate - дата и время окончания по [http://ru.wikipedia.org/wiki/UTC UTC], когда учебный процесс был в последний раз выведен из состояния "идет обучение" |
− | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/cstreams | cstreams ]] | + | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/cstreams | cstreams ]] |
+ | * hours - часов всего | ||
+ | * hoursweek - часов в неделю | ||
+ | * hoursweekinternally - часов в неделю очно | ||
+ | * name - имя предмето-потока | ||
+ | * hoursweekdistance - количество часов в неделю дистанционно | ||
+ | * explanatory - пояснительная записка | ||
+ | * lastgradesync - дата последней синхронизации оценок | ||
+ | * salfactor - поправочный зарплатный коэффициент | ||
+ | * substsalfactor - замещающий поправочный коэффициент для учебного процесса. По умолчанию 0. | ||
+ | * mdlcourse - идентификатор курса moodle. Заполняется и используется в режиме клонирования мастер-курса, утвержденного на уровне дисциплины. По умолчанию не указан, что означает использование курса, указанного непосредственно в дисциплине. | ||
+ | |||
+ | =Дополнительные методы:= | ||
+ | |||
+ | ===='''insert($dataobject, $id = NULL, $quiet=false)'''==== | ||
+ | |||
+ | Вставляет запись в таблицу плагина. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * dataobject(object) - данные для записи в таблицу. | ||
+ | * $id = NULL | ||
+ | * quiet(bool) - генерировать или нет события, по умолчанию - нет(false). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - id вставленной записи. | ||
+ | * (bool) - false, если операция не удалась. | ||
+ | |||
− | === | + | ===='''delete($id,$quiet=false)'''==== |
− | '''get_teacher_cstream()''' | + | Удаляет запись из таблицы плагина с указанным id. |
+ | |||
+ | ''Аргументы:'' | ||
+ | * id(int) - id записи в этой таблице . | ||
+ | * quiet(bool) - генерировать или нет события, по умолчанию - нет(false). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если запись удалена или ее нет, false - в остальных случаях. | ||
+ | |||
+ | |||
+ | ===='''update($dataobject, $id = NULL, $quiet=false)'''==== | ||
+ | |||
+ | Обновляет запись в таблице плагина данными из объекта. Отсутствующие в объекте записи не изменяются. Если id передан, то обновляется запись с переданным id. Если id не передан обновляется запись с id, который передан в объекте. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * dataobject(object) - данные, которыми надо заменить запись в таблице. | ||
+ | * id(int) - id обновляемой записи в этой таблице. | ||
+ | * quiet(bool) - не генерировать событий. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если обновление прошло успешно, и false - во всех остальных случаях. | ||
+ | |||
+ | |||
+ | ===='''get_teacher_cstream($id, $status = "active")'''==== | ||
Получает список учебных процессов у данного преподавателя. | Получает список учебных процессов у данного преподавателя. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $id(int) - id преподавателя. | + | * $id(int) - id преподавателя в таблице [[Разработка:storages/persons | persons ]]. |
− | * $status(string) - статус потока, по умолчанию - идет( | + | * $status(string) - статус потока, по умолчанию - идет(active). |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив процессов. | + | * (array) - массив процессов. |
− | * (bool) false если процессы не найдены. | + | * (bool) - false, если процессы не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список процессов: | * формируем SQL-запрос и возвращаем список процессов: | ||
− | ** если указывается статус - | + | ** если указывается статус - процессы с указанным статусом, |
− | ** если статус указывается null - процессы с | + | ** если статус указывается null - процессы с любым статусом, |
− | ** если статус не указывается - процессы со статусом | + | ** если статус не указывается - процессы со статусом active. |
+ | |||
− | '''get_department_cstream()''' | + | ===='''get_department_cstream($id, $status = "active")'''==== |
Получает список учебных процессов у данного подразделения. | Получает список учебных процессов у данного подразделения. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $id(int) - id подразделения. | + | * $id(int) - id подразделения в таблице [[Разработка:storages/departments | departments ]]. |
− | * $status(string) - статус потока, по умолчанию - идет( | + | * $status(string) - статус потока, по умолчанию - идет(active). |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив процессов. | + | * (array) - массив процессов. |
− | * (bool) false если процессы не найдены. | + | * (bool) - false, если процессы не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список процессов: | * формируем SQL-запрос и возвращаем список процессов: | ||
− | ** если указывается статус - | + | ** если указывается статус - процессы с указанным статусом, |
− | ** если статус указывается null - процессы с | + | ** если статус указывается null - процессы с любым статусом, |
− | ** если статус не указывается - процессы со статусом | + | ** если статус не указывается - процессы со статусом active. |
+ | |||
− | '''get_age_cstream()''' | + | ===='''get_age_cstream($id, $status = "active")'''==== |
Получает список учебных процессов для данного учебного периода. | Получает список учебных процессов для данного учебного периода. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $id(int) - id учебного периода. | + | * $id(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. |
− | * $status(string) - статус потока, по умолчанию - идет( | + | * $status(string) - статус потока, по умолчанию - идет(active). |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив процессов. | + | * (array) - массив процессов. |
− | * (bool) false если процессы не найдены. | + | * (bool) - false, если процессы не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список процессов: | * формируем SQL-запрос и возвращаем список процессов: | ||
− | ** если указывается статус - | + | ** если указывается статус - процессы с указанным статусом, |
− | ** если статус указывается null - процессы с | + | ** если статус указывается null - процессы с любым статусом, |
− | ** если статус не указывается - процессы со статусом | + | ** если статус не указывается - процессы со статусом active. |
− | '''get_programmitem_cstream()''' | + | |
+ | ===='''get_programmitem_cstream($id, $status = "active")'''==== | ||
Получает список учебных процессов по данной дисциплине. | Получает список учебных процессов по данной дисциплине. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $id(int) - id дисциплины. | + | * $id(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]]. |
− | * $status(string) - статус потока, по умолчанию - идет( | + | * $status(string) - статус потока, по умолчанию - идет(active). |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив процессов. | + | * (array) - массив процессов. |
− | * (bool) false если процессы не найдены. | + | * (bool) - false, если процессы не найдены. |
''Структура работы:'' | ''Структура работы:'' | ||
* формируем SQL-запрос и возвращаем список процессов: | * формируем SQL-запрос и возвращаем список процессов: | ||
− | ** если указывается статус - | + | ** если указывается статус - процессы с указанным статусом, |
− | ** если статус указывается null - процессы с | + | ** если статус указывается null - процессы с любым статусом, |
− | ** если статус не указывается - процессы со статусом | + | ** если статус не указывается - процессы со статусом active. |
− | '''get_agroup_cstream''' | + | ===='''get_agroup_cstream($id)'''==== |
Получает список учебных процессов для академической группы. | Получает список учебных процессов для академической группы. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $id(int) - id академической группы. | + | * $id(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. |
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив процессов. | ||
+ | * (bool) - false, если процессы не найдены. | ||
+ | |||
+ | |||
+ | ===='''get_agroup_agenum_cstreams($agroupid, $ageid)'''==== | ||
+ | |||
+ | Получить Список программ по академической группе, и периоду. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из этой таблицы, если они есть. | ||
+ | * (bool) - false, если ничего не нашлось. | ||
+ | |||
+ | |||
+ | ===='''get_agroup_status_cstreams($agroupid, $status)'''==== | ||
+ | Получить Список программ по академической группе, и статусу. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $status(string) - статус потока. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из таблицы cstreams если они есть. | ||
+ | * (bool) - false, если ничегг не нашлось. | ||
+ | |||
+ | |||
+ | ===='''get_numberof_cstreams($select)'''==== | ||
+ | |||
+ | Возвращает количество потоков. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $select(string) - критерии отбора записей. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (int) - количество найденных записей. | ||
+ | |||
+ | |||
+ | ===='''get_prog_age_cstreams($pitemid, $ageid, $status=null)'''==== | ||
+ | |||
+ | Получить список учебных потоков, допустимых учебной программой и текущим периодом | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmid(object) - id учебной программы в таблице [[Разработка:storages/programms | programms ]]. | ||
+ | * $ageid(object) - id периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | * $status(string) - статус учебного потока. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из базы. | ||
+ | * (bool) - false, если произошла ошибка. | ||
+ | |||
+ | |||
+ | ===='''get_programm_age_cstreams($programmid, $ageid = null, $agenum = null, $dpid = null)'''==== | ||
+ | |||
+ | Получает все учебные потоки программы. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmid(int) - id учебной программы в таблице [[Разработка:storages/programms | programms ]]. | ||
+ | * $ageid(int) - id периода в таблице [[Разработка:storages/ages | ages ]], по умолчанию нет. | ||
+ | * $agenum - номер паралели в таблице [[Разработка:storages/programmitems | programmitems ]], по умолчанию нет(null). | ||
+ | * $dpid - id подразделения в таблице [[Разработка:storages/departments | departments ]], по умолчанию - нет(null). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив потоков. | ||
+ | * (bool) - false, если потоки не найдены. | ||
+ | |||
+ | |||
+ | ===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''==== | ||
+ | |||
+ | Возвращает список учебных потоков по заданным критериям. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей. | ||
+ | * $limitnum(int) - сколько записей нужно извлечь из базы. | ||
+ | * $conds(object) - объект со списком свойств, по которым будет происходить поиск, по умолчанию - нет(null), | ||
+ | * $countonly(object) - вернуть список записей по указанным условиям или только их количество, по умолчанию - список(false), | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - массив записей из базы. | ||
+ | * (bool) - false, в случае ошибки. | ||
+ | |||
+ | |||
+ | ===='''get_select_listing($inputconds)'''==== | ||
+ | |||
+ | Возвращает фрагмент sql-запроса после слова WHERE. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $inputconds(object) - список полей с условиями запроса в формате "поле_БД->значение". | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (string). | ||
+ | |||
+ | ===='''get_agroup_ageids($agroupid)'''==== | ||
+ | |||
+ | Получить id всех периодов, в течение которых проходит обучение выбранной группы. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * @param int $agroupid - id академической группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array) - индексированный массив с уникальными значениями id периодов всех потоков. | ||
+ | * (bool) - false, если ничего не найдено. | ||
+ | |||
+ | |||
+ | ===='''create_cstreams_for_agroup($agroupid, $ageid, $departmentid, $datebegin, $enddate=null)'''==== | ||
+ | |||
+ | Создаёт учебные потоки для группы. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id акадкмическуой группы (класса) в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | * $departmentid(int) - id учебного подразделения в таблице [[Разработка:storages/departments | departments ]]. | ||
+ | * $datebegin(int) - дата начала обучения в формате [http://ru.wikipedia.org/wiki/UNIX-время unixtime]. | ||
+ | * $enddate(int) - дата окончания обучения в формате [http://ru.wikipedia.org/wiki/UNIX-время unixtime], по умолчанию - нет(null). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''create_cstreams_for_programm($programmid, $ageid, $agenum, $departmentid, $datebegin, $enddate=null)'''==== | ||
+ | |||
+ | Создаёт подписку на программу в учебном периоде для выбранной параллели. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmid(int) - id учебной программы в таблице [[Разработка:storages/programms | programms ]]. | ||
+ | * $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | * $agenum(int) - номер параллели, для которой создается подписка. | ||
+ | * $departmentid(int) - id учебного подразделения в таблице [[Разработка:storages/departments | departments ]]. | ||
+ | * $datebegin(int) - дата начала обучения в формате [http://ru.wikipedia.org/wiki/UNIX-время unixtime]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | ===='''enrol_agroup_on_cstreams($agroupid, $ageid)'''==== | ||
+ | |||
+ | Подписывает группу на список потоков. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $agroupid(int) - id группы в таблице [[Разработка:storages/agroups | agroups ]]. | ||
+ | * $ageid(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''set_status_complete($id)'''==== | ||
+ | |||
+ | Переводит поток в статус "завершен". | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $id(int) - id потока в таблице плагина. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если поток удачно завершен, и false - в остальных случаях. | ||
+ | |||
+ | |||
+ | ===='''get_cstreams_on_parametres($programmitemid, $teacherid = 0, $mycstrems = false, $completecstrems = false)'''==== | ||
+ | |||
+ | Возвращает список потоков по параметрам. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $programmitemid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]]. | ||
+ | * $teacherid(int) - id учителя в таблице [[Разработка:storages/persons | persons ]], по умолчанию - нет(0). | ||
+ | * $mycstrems(bool) - показать ли потоки текущего пользователя, по умолчанию - нет(false). | ||
+ | * $completecstrems(bool) - показать ли завершенные потоки, по умолчанию - нет(false). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (array). | ||
+ | |||
+ | |||
+ | ===='''get_short_name($cstreamid)'''==== | ||
+ | |||
+ | Возвращает короткое имя потока. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstreamid(int) - id потока в таблице плагина. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (string) | ||
+ | * (bool) - false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''enrol_students_on_cstream($cstream, $programmsbcids)'''==== | ||
+ | |||
+ | Подписывает учеников на поток. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstream(object) - объект из таблицы плагина. | ||
+ | * $programmsbcids(object) - массив, состоящий из id подписок на программы в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | ===='''unenrol_students_from_cstream($cstream, $programmsbcids)'''==== | ||
+ | |||
+ | Исключает учеников из потока | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * @param object $cstream - объект из таблицы плагина. | ||
+ | * @param array $programmsbcids - массив, состоящий из id подписок на программы в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''enrol_student_on_cstream($cstream, $programmsbcid)'''==== | ||
+ | |||
+ | Подписывает одного ученика на поток. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstream(object) - объект из таблицы плагина. | ||
+ | * $programmsbcid(int) - id подписки ученика на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''unenrol_student_from_cstream($cstream, $programmsbcid)'''==== | ||
+ | |||
+ | Исключает одного ученика из потока. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $cstream(object) - объект из таблицы плагина. | ||
+ | * $programmsbcid(int) - id подписки ученика на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если всё получилось, и false, если возникли ошибки. | ||
+ | |||
+ | |||
+ | ===='''get_cstreamname($eventcode, $mixedvar, $cstream = false)'''==== | ||
+ | |||
+ | В зависимости от произошедших событий (значение $eventcode) сохраняет информацию о новом (insert), и новом, и старом (update) либо только старом (delete) имени предмето-потока в БД. | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $eventcode - произошедшее событие. | ||
+ | * $mixedvar(array) - id нового и старого потоков в таблице плагина. | ||
+ | * $cstream - данные пришли из таблицы плагина? , по умолчанию - нет(false). | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - true, если запись прошла успешно, и false - в случае ошибок. | ||
+ | |||
+ | ===='''get_old_sync_cstreams($limit)'''==== | ||
+ | |||
+ | Возвращает id указанного количества активных самых давно-синхронизированных cstream`ов | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * int $limit Количество выбираемых записей | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив | + | * (array) - массив записей cstream |
− | |||
===Планы:=== | ===Планы:=== | ||
====Дополнительные методы:==== | ====Дополнительные методы:==== | ||
* Получить список учебных процессов для данного ученика с учетом персональной подписки и академических групп (второй параметр - статус, по умолчанию - "идет"). | * Получить список учебных процессов для данного ученика с учетом персональной подписки и академических групп (второй параметр - статус, по умолчанию - "идет"). | ||
+ | |||
+ | =События= | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий'' | ||
+ | |} | ||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |cstreams | ||
+ | |insert | ||
+ | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
+ | ''Пример:'' array('new' => $dataobject) | ||
+ | |Генерируется каждый раз при вставке новой записи в таблицу cstreams. | ||
+ | |- | ||
+ | |storage | ||
+ | |cstreams | ||
+ | |update | ||
+ | |Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи. | ||
+ | ''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new) | ||
+ | |Генерируется каждый раз при обновлении записи в таблице cstreams. | ||
+ | |- | ||
+ | |storage | ||
+ | |cstreams | ||
+ | |delete | ||
+ | |Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы | ||
+ | ''Пример:'' array('old' => $dataobject) | ||
+ | |Генерируется каждый раз при удалении записи из таблицы cstreams. | ||
+ | |- | ||
+ | |storage | ||
+ | |cstreams | ||
+ | |changestatus | ||
+ | |Массив, содержащий id учебного потока | ||
+ | ''Пример:'' array('cstreamid'=>$id) | ||
+ | |Событие посылается при изменении статуса учебного потока на "активный" (active) | ||
+ | |- | ||
+ | | im | ||
+ | | employees | ||
+ | | delete_person_info | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Отправляет число записей, которые данная персона может перевести в мусорный статус | ||
+ | |- | ||
+ | | im | ||
+ | | employees | ||
+ | | delete_person | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Переводит в мусорный статус записи, относящиеся к удаляемой персоне и доступные для персоны, запросившей удаление | ||
+ | |} | ||
+ | |||
+ | =Задания= | ||
+ | |||
+ | {| border="1" | ||
+ | |+ Таблица заданий, которые выполняет этот плагин | ||
+ | ! Код задания | ||
+ | ! Дополнительный параметр | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |resync_programmitem_cstreams | ||
+ | |Обязателен. Указывается id дисциплины из таблицы [[Разработка:storages/programmitems | programmitems ]] | ||
+ | |Находит все активные учебные процессы в указанной дисциплине, после чего каждого из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплине во время учебного процесса. | ||
+ | |- | ||
+ | |programmitem_cpass_to_suspend | ||
+ | |Обязателен. Указывается id дисциплины из таблицы [[Разработка:storages/programmitems | programmitems ]] | ||
+ | |Находит все активные учебные процессы в указанной дисциплине, после чего каждого из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплине. Работает в паре с '''programmitem_cpass_to_active'''. | ||
+ | |- | ||
+ | |programmitem_cpass_to_active | ||
+ | |Обязателен. Указывается id дисциплины из таблицы [[Разработка:storages/programmitems | programmitems ]] | ||
+ | |Находит все приостановленные учебные процессы в указанной дисциплине, после чего каждого из них активирует. Необходимо для записи учащихся на курс Moodle после смены курса Moodle в дисциплине. Работает в паре с '''programmitem_cpass_to_suspend'''. | ||
+ | |- | ||
+ | |resync_department_cstreams | ||
+ | |Обязателен. Указывается id подразделения из таблицы [[Разработка:storages/departments | departments ]] | ||
+ | |Находит все активные учебные процессы в указанном подразделении, после чего каждого из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса. | ||
+ | |} | ||
+ | |||
+ | [[Категория:Плагины обработки todo | storages/cstreams]] |
Текущая версия на 16:30, 11 января 2018
Плагин | |
Название | cstreams |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 insert($dataobject, $id = NULL, $quiet=false)
- 2.2 delete($id,$quiet=false)
- 2.3 update($dataobject, $id = NULL, $quiet=false)
- 2.4 get_teacher_cstream($id, $status = "active")
- 2.5 get_department_cstream($id, $status = "active")
- 2.6 get_age_cstream($id, $status = "active")
- 2.7 get_programmitem_cstream($id, $status = "active")
- 2.8 get_agroup_cstream($id)
- 2.9 get_agroup_agenum_cstreams($agroupid, $ageid)
- 2.10 get_agroup_status_cstreams($agroupid, $status)
- 2.11 get_numberof_cstreams($select)
- 2.12 get_prog_age_cstreams($pitemid, $ageid, $status=null)
- 2.13 get_programm_age_cstreams($programmid, $ageid = null, $agenum = null, $dpid = null)
- 2.14 get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
- 2.15 get_select_listing($inputconds)
- 2.16 get_agroup_ageids($agroupid)
- 2.17 create_cstreams_for_agroup($agroupid, $ageid, $departmentid, $datebegin, $enddate=null)
- 2.18 create_cstreams_for_programm($programmid, $ageid, $agenum, $departmentid, $datebegin, $enddate=null)
- 2.19 enrol_agroup_on_cstreams($agroupid, $ageid)
- 2.20 set_status_complete($id)
- 2.21 get_cstreams_on_parametres($programmitemid, $teacherid = 0, $mycstrems = false, $completecstrems = false)
- 2.22 get_short_name($cstreamid)
- 2.23 enrol_students_on_cstream($cstream, $programmsbcids)
- 2.24 unenrol_students_from_cstream($cstream, $programmsbcids)
- 2.25 enrol_student_on_cstream($cstream, $programmsbcid)
- 2.26 unenrol_student_from_cstream($cstream, $programmsbcid)
- 2.27 get_cstreamname($eventcode, $mixedvar, $cstream = false)
- 2.28 get_old_sync_cstreams($limit)
- 2.29 Планы:
- 3 События
- 4 Задания
Таблица в базе данных
cstreams - учебный поток. Представляет учебный процесс, идущий по учебной дисциплине/предмету в течение одного учебного периоду с конкретным преподавателем, одним или несколькими учащимися или группой.
Подробный формат полей в таблице:
- ageid - учебный период в таблице ages
- programmitemid - дисциплина в таблице programmitems
- [больше не используется] teacherid - id преподавателя в таблице persons . После создания поля appointmentid стало ненужным. Все старые обращения к этому полю будут переделаны на обращения к appointmentid, при создании новых обращений они должны обращаться к appointmentid. После переработки старых методов данное поле удалиться.
- departmentid - подразделение, которому принадлежит учебный процесс в таблице departments
- appointmentid - id назначения на должность в таблице appointments .
- mdlgroup - id группы moodle, соответствующей учебному потоку
- eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, по-умолчанию берется из programmitems, если там не указано - из ages. Нужны для подсчета часов при составлении расписания.
- begindate - дата и время, когда учебный процесс был впервые переведен в состояние "идет обучение" по UTC
- enddate - дата и время окончания по UTC, когда учебный процесс был в последний раз выведен из состояния "идет обучение"
- status - список статусов указан в одноименном плагине рабочих процессов cstreams
- hours - часов всего
- hoursweek - часов в неделю
- hoursweekinternally - часов в неделю очно
- name - имя предмето-потока
- hoursweekdistance - количество часов в неделю дистанционно
- explanatory - пояснительная записка
- lastgradesync - дата последней синхронизации оценок
- salfactor - поправочный зарплатный коэффициент
- substsalfactor - замещающий поправочный коэффициент для учебного процесса. По умолчанию 0.
- mdlcourse - идентификатор курса moodle. Заполняется и используется в режиме клонирования мастер-курса, утвержденного на уровне дисциплины. По умолчанию не указан, что означает использование курса, указанного непосредственно в дисциплине.
Дополнительные методы:
insert($dataobject, $id = NULL, $quiet=false)
Вставляет запись в таблицу плагина.
Аргументы:
- dataobject(object) - данные для записи в таблицу.
- $id = NULL
- quiet(bool) - генерировать или нет события, по умолчанию - нет(false).
Возвращаемые значения:
- (int) - id вставленной записи.
- (bool) - false, если операция не удалась.
delete($id,$quiet=false)
Удаляет запись из таблицы плагина с указанным id.
Аргументы:
- id(int) - id записи в этой таблице .
- quiet(bool) - генерировать или нет события, по умолчанию - нет(false).
Возвращаемые значения:
- (bool) - true, если запись удалена или ее нет, false - в остальных случаях.
update($dataobject, $id = NULL, $quiet=false)
Обновляет запись в таблице плагина данными из объекта. Отсутствующие в объекте записи не изменяются. Если id передан, то обновляется запись с переданным id. Если id не передан обновляется запись с id, который передан в объекте.
Аргументы:
- dataobject(object) - данные, которыми надо заменить запись в таблице.
- id(int) - id обновляемой записи в этой таблице.
- quiet(bool) - не генерировать событий.
Возвращаемые значения:
- (bool) - true, если обновление прошло успешно, и false - во всех остальных случаях.
get_teacher_cstream($id, $status = "active")
Получает список учебных процессов у данного преподавателя.
Аргументы:
- $id(int) - id преподавателя в таблице persons .
- $status(string) - статус потока, по умолчанию - идет(active).
Возвращаемые значения:
- (array) - массив процессов.
- (bool) - false, если процессы не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список процессов:
- если указывается статус - процессы с указанным статусом,
- если статус указывается null - процессы с любым статусом,
- если статус не указывается - процессы со статусом active.
get_department_cstream($id, $status = "active")
Получает список учебных процессов у данного подразделения.
Аргументы:
- $id(int) - id подразделения в таблице departments .
- $status(string) - статус потока, по умолчанию - идет(active).
Возвращаемые значения:
- (array) - массив процессов.
- (bool) - false, если процессы не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список процессов:
- если указывается статус - процессы с указанным статусом,
- если статус указывается null - процессы с любым статусом,
- если статус не указывается - процессы со статусом active.
get_age_cstream($id, $status = "active")
Получает список учебных процессов для данного учебного периода.
Аргументы:
- $id(int) - id учебного периода в таблице ages .
- $status(string) - статус потока, по умолчанию - идет(active).
Возвращаемые значения:
- (array) - массив процессов.
- (bool) - false, если процессы не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список процессов:
- если указывается статус - процессы с указанным статусом,
- если статус указывается null - процессы с любым статусом,
- если статус не указывается - процессы со статусом active.
get_programmitem_cstream($id, $status = "active")
Получает список учебных процессов по данной дисциплине.
Аргументы:
- $id(int) - id дисциплины в таблице programmitems .
- $status(string) - статус потока, по умолчанию - идет(active).
Возвращаемые значения:
- (array) - массив процессов.
- (bool) - false, если процессы не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список процессов:
- если указывается статус - процессы с указанным статусом,
- если статус указывается null - процессы с любым статусом,
- если статус не указывается - процессы со статусом active.
get_agroup_cstream($id)
Получает список учебных процессов для академической группы.
Аргументы:
- $id(int) - id академической группы в таблице agroups .
Возвращаемые значения:
- (array) - массив процессов.
- (bool) - false, если процессы не найдены.
get_agroup_agenum_cstreams($agroupid, $ageid)
Получить Список программ по академической группе, и периоду.
Аргументы:
- $agroupid(int) - id академической группы в таблице agroups .
- $ageid(int) - id учебного периода в таблице ages .
Возвращаемые значения:
- (array) - массив записей из этой таблицы, если они есть.
- (bool) - false, если ничего не нашлось.
get_agroup_status_cstreams($agroupid, $status)
Получить Список программ по академической группе, и статусу.
Аргументы:
- $agroupid(int) - id академической группы в таблице agroups .
- $status(string) - статус потока.
Возвращаемые значения:
- (array) - массив записей из таблицы cstreams если они есть.
- (bool) - false, если ничегг не нашлось.
get_numberof_cstreams($select)
Возвращает количество потоков.
Аргументы:
- $select(string) - критерии отбора записей.
Возвращаемые значения:
- (int) - количество найденных записей.
get_prog_age_cstreams($pitemid, $ageid, $status=null)
Получить список учебных потоков, допустимых учебной программой и текущим периодом
Аргументы:
- $programmid(object) - id учебной программы в таблице programms .
- $ageid(object) - id периода в таблице ages .
- $status(string) - статус учебного потока.
Возвращаемые значения:
- (array) - массив записей из базы.
- (bool) - false, если произошла ошибка.
get_programm_age_cstreams($programmid, $ageid = null, $agenum = null, $dpid = null)
Получает все учебные потоки программы.
Аргументы:
- $programmid(int) - id учебной программы в таблице programms .
- $ageid(int) - id периода в таблице ages , по умолчанию нет.
- $agenum - номер паралели в таблице programmitems , по умолчанию нет(null).
- $dpid - id подразделения в таблице departments , по умолчанию - нет(null).
Возвращаемые значения:
- (array) - массив потоков.
- (bool) - false, если потоки не найдены.
get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
Возвращает список учебных потоков по заданным критериям.
Аргументы:
- $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей.
- $limitnum(int) - сколько записей нужно извлечь из базы.
- $conds(object) - объект со списком свойств, по которым будет происходить поиск, по умолчанию - нет(null),
- $countonly(object) - вернуть список записей по указанным условиям или только их количество, по умолчанию - список(false),
Возвращаемые значения:
- (array) - массив записей из базы.
- (bool) - false, в случае ошибки.
get_select_listing($inputconds)
Возвращает фрагмент sql-запроса после слова WHERE.
Аргументы:
- $inputconds(object) - список полей с условиями запроса в формате "поле_БД->значение".
Возвращаемые значения:
- (string).
get_agroup_ageids($agroupid)
Получить id всех периодов, в течение которых проходит обучение выбранной группы.
Аргументы:
- @param int $agroupid - id академической группы в таблице agroups .
Возвращаемые значения:
- (array) - индексированный массив с уникальными значениями id периодов всех потоков.
- (bool) - false, если ничего не найдено.
create_cstreams_for_agroup($agroupid, $ageid, $departmentid, $datebegin, $enddate=null)
Создаёт учебные потоки для группы.
Аргументы:
- $agroupid(int) - id акадкмическуой группы (класса) в таблице agroups .
- $ageid(int) - id учебного периода в таблице ages .
- $departmentid(int) - id учебного подразделения в таблице departments .
- $datebegin(int) - дата начала обучения в формате unixtime.
- $enddate(int) - дата окончания обучения в формате unixtime, по умолчанию - нет(null).
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
create_cstreams_for_programm($programmid, $ageid, $agenum, $departmentid, $datebegin, $enddate=null)
Создаёт подписку на программу в учебном периоде для выбранной параллели.
Аргументы:
- $programmid(int) - id учебной программы в таблице programms .
- $ageid(int) - id учебного периода в таблице ages .
- $agenum(int) - номер параллели, для которой создается подписка.
- $departmentid(int) - id учебного подразделения в таблице departments .
- $datebegin(int) - дата начала обучения в формате unixtime.
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
enrol_agroup_on_cstreams($agroupid, $ageid)
Подписывает группу на список потоков.
Аргументы:
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
set_status_complete($id)
Переводит поток в статус "завершен".
Аргументы:
- $id(int) - id потока в таблице плагина.
Возвращаемые значения:
- (bool) - true, если поток удачно завершен, и false - в остальных случаях.
get_cstreams_on_parametres($programmitemid, $teacherid = 0, $mycstrems = false, $completecstrems = false)
Возвращает список потоков по параметрам.
Аргументы:
- $programmitemid(int) - id дисциплины в таблице programmitems .
- $teacherid(int) - id учителя в таблице persons , по умолчанию - нет(0).
- $mycstrems(bool) - показать ли потоки текущего пользователя, по умолчанию - нет(false).
- $completecstrems(bool) - показать ли завершенные потоки, по умолчанию - нет(false).
Возвращаемые значения:
- (array).
get_short_name($cstreamid)
Возвращает короткое имя потока.
Аргументы:
- $cstreamid(int) - id потока в таблице плагина.
Возвращаемые значения:
- (string)
- (bool) - false, если возникли ошибки.
enrol_students_on_cstream($cstream, $programmsbcids)
Подписывает учеников на поток.
Аргументы:
- $cstream(object) - объект из таблицы плагина.
- $programmsbcids(object) - массив, состоящий из id подписок на программы в таблице programmsbcs .
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
unenrol_students_from_cstream($cstream, $programmsbcids)
Исключает учеников из потока
Аргументы:
- @param object $cstream - объект из таблицы плагина.
- @param array $programmsbcids - массив, состоящий из id подписок на программы в таблице programmsbcs .
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
enrol_student_on_cstream($cstream, $programmsbcid)
Подписывает одного ученика на поток.
Аргументы:
- $cstream(object) - объект из таблицы плагина.
- $programmsbcid(int) - id подписки ученика на программу в таблице programmsbcs .
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
unenrol_student_from_cstream($cstream, $programmsbcid)
Исключает одного ученика из потока.
Аргументы:
- $cstream(object) - объект из таблицы плагина.
- $programmsbcid(int) - id подписки ученика на программу в таблице programmsbcs .
Возвращаемые значения:
- (bool) - true, если всё получилось, и false, если возникли ошибки.
get_cstreamname($eventcode, $mixedvar, $cstream = false)
В зависимости от произошедших событий (значение $eventcode) сохраняет информацию о новом (insert), и новом, и старом (update) либо только старом (delete) имени предмето-потока в БД.
Аргументы:
- $eventcode - произошедшее событие.
- $mixedvar(array) - id нового и старого потоков в таблице плагина.
- $cstream - данные пришли из таблицы плагина? , по умолчанию - нет(false).
Возвращаемые значения:
- (bool) - true, если запись прошла успешно, и false - в случае ошибок.
get_old_sync_cstreams($limit)
Возвращает id указанного количества активных самых давно-синхронизированных cstream`ов
Аргументы:
- int $limit Количество выбираемых записей
Возвращаемые значения:
- (array) - массив записей cstream
Планы:
Дополнительные методы:
- Получить список учебных процессов для данного ученика с учетом персональной подписки и академических групп (второй параметр - статус, по умолчанию - "идет").
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | cstreams | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу cstreams. |
storage | cstreams | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице cstreams. |
storage | cstreams | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы cstreams. |
storage | cstreams | changestatus | Массив, содержащий id учебного потока
Пример: array('cstreamid'=>$id) |
Событие посылается при изменении статуса учебного потока на "активный" (active) |
im | employees | delete_person_info | Ответ на запрос интерфейса. Отправляет число записей, которые данная персона может перевести в мусорный статус | |
im | employees | delete_person | Ответ на запрос интерфейса. Переводит в мусорный статус записи, относящиеся к удаляемой персоне и доступные для персоны, запросившей удаление |
Задания
Код задания | Дополнительный параметр | Пояснение |
---|---|---|
resync_programmitem_cstreams | Обязателен. Указывается id дисциплины из таблицы programmitems | Находит все активные учебные процессы в указанной дисциплине, после чего каждого из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплине во время учебного процесса. |
programmitem_cpass_to_suspend | Обязателен. Указывается id дисциплины из таблицы programmitems | Находит все активные учебные процессы в указанной дисциплине, после чего каждого из них приостанавливает. Необходимо для отписывания учащихся с курса Moodle, если необходимо сменить курс Moodle в дисциплине. Работает в паре с programmitem_cpass_to_active. |
programmitem_cpass_to_active | Обязателен. Указывается id дисциплины из таблицы programmitems | Находит все приостановленные учебные процессы в указанной дисциплине, после чего каждого из них активирует. Необходимо для записи учащихся на курс Moodle после смены курса Moodle в дисциплине. Работает в паре с programmitem_cpass_to_suspend. |
resync_department_cstreams | Обязателен. Указывается id подразделения из таблицы departments | Находит все активные учебные процессы в указанном подразделении, после чего каждого из них приостанавливает и заново возобновляет. Необходимо для записи учащихся на курс Moodle, если курс Moodle был присвоен дисциплинам во время учебного процесса. |