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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:: описано какие id из каких таблиц надо брать, добавлены ссылки)
(Подробный формат полей в таблице:)
 
(не показаны 23 промежуточные версии 7 участников)
Строка 4: Строка 4:
 
}}
 
}}
  
===Таблица в базе данных===
+
=Таблица в базе данных=
 
''cstreams'' - учебный поток. Представляет учебный процесс, идущий по учебной дисциплине/предмету в течение одного учебного периоду с конкретным преподавателем, одним или несколькими учащимися или группой.
 
''cstreams'' - учебный поток. Представляет учебный процесс, идущий по учебной дисциплине/предмету в течение одного учебного периоду с конкретным преподавателем, одним или несколькими учащимися или группой.
  
Строка 10: Строка 10:
 
* ageid - учебный период в таблице [[Разработка:storages/ages | ages ]]
 
* ageid - учебный период в таблице [[Разработка:storages/ages | ages ]]
 
* programmitemid - дисциплина в таблице [[Разработка:storages/programmitems | programmitems ]]
 
* programmitemid - дисциплина в таблице [[Разработка:storages/programmitems | programmitems ]]
* teacherid - id преподавателя в таблице [[Разработка:storages/persons | persons ]]
+
* [больше не используется] teacherid - id преподавателя в таблице [[Разработка:storages/persons | persons ]]. После создания поля appointmentid стало ненужным. Все старые обращения к этому полю будут переделаны на обращения к appointmentid, при создании новых обращений они должны обращаться к appointmentid. После переработки старых методов данное поле удалиться.
 
* departmentid - подразделение, которому принадлежит учебный процесс в таблице [[Разработка:storages/departments | departments ]]
 
* departmentid - подразделение, которому принадлежит учебный процесс в таблице [[Разработка:storages/departments | departments ]]
 +
* appointmentid - id назначения на должность в таблице [[Разработка:storages/appointments | appointments ]].
 
* mdlgroup - id группы moodle, соответствующей учебному потоку
 
* mdlgroup - id группы moodle, соответствующей учебному потоку
* eduweaks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, по-умолчанию берется из programmitems, если там не указано - из ages. Нужны для подсчета часов при составлении расписания.
+
* 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. Заполняется и используется в режиме клонирования мастер-курса, утвержденного на уровне дисциплины. По умолчанию не указан, что означает использование курса, указанного непосредственно в дисциплине.
  
===Дополнительные методы:===
+
=Дополнительные методы:=
  
'''get_teacher_cstream()'''
+
===='''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")'''====
  
 
Получает список учебных процессов у данного преподавателя.
 
Получает список учебных процессов у данного преподавателя.
Строка 26: Строка 73:
 
''Аргументы:''  
 
''Аргументы:''  
 
* $id(int) - id преподавателя в таблице [[Разработка:storages/persons | persons ]].
 
* $id(int) - id преподавателя в таблице [[Разработка:storages/persons | persons ]].
* $status(string) - статус потока, по умолчанию - идет(go).
+
* $status(string) - статус потока, по умолчанию - идет(active).
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) массив процессов.  
+
* (array) - массив процессов.  
* (bool) false если процессы не найдены.
+
* (bool) - false, если процессы не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список процессов:
 
* формируем SQL-запрос и возвращаем список процессов:
 
** если указывается статус - процессы с указанным статусом,
 
** если указывается статус - процессы с указанным статусом,
 
** если статус указывается null - процессы с любым статусом,
 
** если статус указывается null - процессы с любым статусом,
** если статус не указывается - процессы со статусом go.
+
** если статус не указывается - процессы со статусом active.
 +
 
  
'''get_department_cstream()'''
+
===='''get_department_cstream($id, $status = "active")'''====
  
 
Получает список учебных процессов у данного подразделения.
 
Получает список учебных процессов у данного подразделения.
Строка 42: Строка 90:
 
''Аргументы:''  
 
''Аргументы:''  
 
* $id(int) - id подразделения в таблице [[Разработка:storages/departments | departments ]].
 
* $id(int) - id подразделения в таблице [[Разработка:storages/departments | departments ]].
* $status(string) - статус потока, по умолчанию - идет(go).
+
* $status(string) - статус потока, по умолчанию - идет(active).
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) массив процессов.  
+
* (array) - массив процессов.  
* (bool) false если процессы не найдены.
+
* (bool) - false, если процессы не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список процессов:
 
* формируем SQL-запрос и возвращаем список процессов:
 
** если указывается статус - процессы с указанным статусом,
 
** если указывается статус - процессы с указанным статусом,
 
** если статус указывается null - процессы с любым статусом,
 
** если статус указывается null - процессы с любым статусом,
** если статус не указывается - процессы со статусом go.
+
** если статус не указывается - процессы со статусом active.
  
'''get_age_cstream()'''
+
 
 +
===='''get_age_cstream($id, $status = "active")'''====
  
 
Получает список учебных процессов для данного учебного периода.
 
Получает список учебных процессов для данного учебного периода.
Строка 58: Строка 107:
 
''Аргументы:''  
 
''Аргументы:''  
 
* $id(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]].
 
* $id(int) - id учебного периода в таблице [[Разработка:storages/ages | ages ]].
* $status(string) - статус потока, по умолчанию - идет(go).
+
* $status(string) - статус потока, по умолчанию - идет(active).
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) массив процессов.  
+
* (array) - массив процессов.  
* (bool) false если процессы не найдены.
+
* (bool) - false, если процессы не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список процессов:
 
* формируем SQL-запрос и возвращаем список процессов:
 
** если указывается статус - процессы с указанным статусом,
 
** если указывается статус - процессы с указанным статусом,
 
** если статус указывается null - процессы с любым статусом,
 
** если статус указывается null - процессы с любым статусом,
** если статус не указывается - процессы со статусом go.
+
** если статус не указывается - процессы со статусом active.
  
'''get_programmitem_cstream()'''
+
 
 +
===='''get_programmitem_cstream($id, $status = "active")'''====
  
 
Получает список учебных процессов по данной дисциплине.
 
Получает список учебных процессов по данной дисциплине.
Строка 74: Строка 124:
 
''Аргументы:''  
 
''Аргументы:''  
 
* $id(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
 
* $id(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
* $status(string) - статус потока, по умолчанию - идет(go).
+
* $status(string) - статус потока, по умолчанию - идет(active).
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) массив процессов.  
+
* (array) - массив процессов.  
* (bool) false если процессы не найдены.
+
* (bool) - false, если процессы не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список процессов:
 
* формируем SQL-запрос и возвращаем список процессов:
 
** если указывается статус - процессы с указанным статусом,
 
** если указывается статус - процессы с указанным статусом,
 
** если статус указывается null - процессы с любым статусом,
 
** если статус указывается null - процессы с любым статусом,
** если статус не указывается - процессы со статусом go.
+
** если статус не указывается - процессы со статусом active.
  
'''get_agroup_cstream'''
+
===='''get_agroup_cstream($id)'''====
  
 
Получает список учебных процессов для академической группы.
 
Получает список учебных процессов для академической группы.
Строка 91: Строка 141:
 
* $id(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]].
 
* $id(int) - id академической группы в таблице [[Разработка:storages/agroups | agroups ]].
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) массив процессов.  
+
* (array) - массив процессов.
* (bool) false если процессы не найдены.
+
* (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, если возникли ошибки.
  
'''get_agroup_agenum_cstreams()'''
+
   
 +
===='''enrol_student_on_cstream($cstream, $programmsbcid)'''====
  
'''get_agroup_status_cstreams()'''
+
Подписывает одного ученика на поток.
  
''' get_prog_age_cstreams()'''
+
''Аргументы:''
 +
* $cstream(object) - объект из таблицы плагина.
 +
* $programmsbcid(int) - id подписки ученика на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если всё получилось, и false, если возникли ошибки.
 +
   
 +
   
 +
===='''unenrol_student_from_cstream($cstream, $programmsbcid)'''====
  
'''get_listing()'''
+
Исключает одного ученика из потока.
  
'''get_select_listing()'''
+
''Аргументы:''
 +
* $cstream(object) - объект из таблицы плагина.
 +
* $programmsbcid(int) - id подписки ученика на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
''Возвращаемые значения:''
 +
* (bool) - true, если всё получилось, и false, если возникли ошибки.
  
protected-метод.
 
  
'''is_teacher()'''
+
===='''get_cstreamname($eventcode, $mixedvar, $cstream = false)'''====
  
'''get_agroup_ageids()'''
+
В зависимости от произошедших событий (значение $eventcode) сохраняет информацию о новом (insert), и новом, и старом (update) либо только старом (delete) имени предмето-потока в БД.
  
'''create_cstreams_for_agroup()'''
+
''Аргументы:''
 +
* $eventcode - произошедшее событие.
 +
* $mixedvar(array) - id нового и старого потоков в таблице плагина.
 +
* $cstream - данные пришли из таблицы плагина? , по умолчанию - нет(false).
 +
''Возвращаемые значения:''
 +
* (bool) - true, если запись прошла успешно, и false - в случае ошибок.
  
'''create_cstreams_for_programm()'''
+
===='''get_old_sync_cstreams($limit)'''====
  
'''enrol_agroup_on_cstreams()'''
+
Возвращает id указанного количества активных самых давно-синхронизированных cstream`ов
 +
 
 +
''Аргументы:''
 +
* int $limit Количество выбираемых записей
 +
''Возвращаемые значения:''
 +
* (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


Содержание

Таблица в базе данных

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)

Подписывает группу на список потоков.

Аргументы:

  • $agroupid(int) - id группы в таблице agroups .
  • $ageid(int) - id учебного периода в таблице 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 дисциплины в таблице 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 был присвоен дисциплинам во время учебного процесса.