Разработка:storages/cstreams — различия между версиями
Yumeneco (обсуждение | вклад) (→Подробный формат полей в таблице:) |
(→Генерируемые события) |
||
Строка 426: | Строка 426: | ||
''Пример:'' array('cstreamid'=>$id) | ''Пример:'' array('cstreamid'=>$id) | ||
|Событие посылается при изменении статуса учебного потока на "активный" (active) | |Событие посылается при изменении статуса учебного потока на "активный" (active) | ||
+ | |- | ||
+ | | im | ||
+ | | employees | ||
+ | | delete_person_info | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Отправляет число записей, которые данная персона может перевести в мусорный статус | ||
+ | |- | ||
+ | | im | ||
+ | | employees | ||
+ | | delete_person | ||
+ | | | ||
+ | | Ответ на запрос интерфейса. Переводит в мусорный статус записи, относящиеся к удаляемой персоне и доступные для персоны, запросившей удаление | ||
|} | |} | ||
Версия 15:39, 21 января 2015
Плагин | |
Название | 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.
Дополнительные методы:
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 был присвоен дисциплинам во время учебного процесса. |