Разработка:storages/schevents — различия между версиями
Ilya (обсуждение | вклад) (→Подробный формат полей в таблице:) |
(→Подробный формат полей в таблице:) |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 4: | Строка 4: | ||
}} | }} | ||
− | + | =Таблица в базе данных= | |
''schevents'' - учебные события, отображенные на реальные даны. Содержит информацию о реальной дате и времени учебного события, его статусе (проведено/не проведено), собитии-замене, исходном шаблоне, подразделении, расписанию которого принадлежит события и другие. | ''schevents'' - учебные события, отображенные на реальные даны. Содержит информацию о реальной дате и времени учебного события, его статусе (проведено/не проведено), собитии-замене, исходном шаблоне, подразделении, расписанию которого принадлежит события и другие. | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * templateid - шаблон расписания | + | * templateid - шаблон расписания в таблице [[Разработка:storages/schtemplates | schtemplates]] |
* dayid - день расписания, по которому было создано событие. Все запланированные(plan) и отложенные (postponed) события должны быть привязаны к существующим дням (то есть дняв с статусе active). Если в поле dayid стоит null - это нормальная ситуация. Она означает, что событие было создано вручную завучем, и не связано с шаблонами расписания. | * dayid - день расписания, по которому было создано событие. Все запланированные(plan) и отложенные (postponed) события должны быть привязаны к существующим дням (то есть дняв с статусе active). Если в поле dayid стоит null - это нормальная ситуация. Она означает, что событие было создано вручную завучем, и не связано с шаблонами расписания. | ||
* planid - тема урока в плане | * planid - тема урока в плане | ||
− | * type - тип события: обычный урок, бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный). | + | * type - тип события: обычный урок, совместный урок(например, учитель ведет свой обычный урок и параллельно ведет урок по совмещению от заболевшего учителя), бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный). |
− | * joinid - id обычного урока, к которому присоединяется "бесплатный" или "интегрированный" либо 0 | + | * joinid - id обычного урока, к которому присоединяется "бесплатный" , "совместный" или "интегрированный" либо 0 |
* cstreamid - учебный поток в таблице [[Разработка:storages/cstreams | cstreams ]] | * cstreamid - учебный поток в таблице [[Разработка:storages/cstreams | cstreams ]] | ||
− | * teacherid - id преподавателя в таблице [[Разработка:storages/persons | persons ]] | + | * teacherid - '''БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ''' id преподавателя в таблице [[Разработка:storages/persons | persons ]] |
* date - дата и время начала события по UTC | * date - дата и время начала события по UTC | ||
* duration - продолжительность события в секундах | * duration - продолжительность события в секундах | ||
Строка 22: | Строка 22: | ||
* form - форма урока (очно/дистанционно) | * form - форма урока (очно/дистанционно) | ||
* appointmentid - назначение на должность, в рамках которого проходит урок (таблица[[Разработка:storages/persons | appointments ]]) | * appointmentid - назначение на должность, в рамках которого проходит урок (таблица[[Разработка:storages/persons | appointments ]]) | ||
+ | * ahours - продолжительность урока в академических часах | ||
+ | * rhours - продолжительность в условных часах, рассчитанная по формуле(ahours * programmitem.salfactor * programmsbcs.salfactor * schtemplates.salfactor * конфиг.поправаподразделения * конфиг.поправкапоколичествуучеников * cstreams.salfactor + ahours * cstreams.substsalfactor) | ||
+ | * salfactor - применяемый итоговый коэффициент (вычисляется как один час, к которому применены все действующие для данного урока поправочные коэффициенты или один замещающий) | ||
+ | * salfactorparts - сериализованный объект с полями: $obj->vars-> значения всех действующих на момент расчета коэффициентов, $obj->formula - формула расчета | ||
+ | * url - ссылка на занятие (текстовое поле формата url) | ||
− | + | =Дополнительные методы:= | |
===='''replace_events($eventid, $date)'''==== | ===='''replace_events($eventid, $date)'''==== | ||
Строка 194: | Строка 199: | ||
* Получить статистику событий по учебному процессу | * Получить статистику событий по учебному процессу | ||
* Получить статистику событий с участием студента | * Получить статистику событий с участием студента | ||
− | + | ||
+ | =События= | ||
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
====Перехватываемые события==== | ====Перехватываемые события==== | ||
Строка 238: | Строка 244: | ||
|} | |} | ||
− | + | =Задания= | |
− | [[Категория: | + | |
+ | {| border="1" | ||
+ | |+ Таблица заданий, которые выполняет этот плагин | ||
+ | ! Код задания | ||
+ | ! Дополнительный параметр | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |delete_broken_events | ||
+ | |Необязателен. Указывается дата, с которой ищутся занятия, если не указан по-умолчанию выбираются все. | ||
+ | |Находит все запланированные и отложенные занятия привязанные к дням начиная с указанной даты. Отменяет те события, чьи дни были удалены или отсутствуют в БД. | ||
+ | |} | ||
+ | |||
+ | [[Категория:Плагины обработки todo | storages/schevents]] |
Текущая версия на 12:46, 13 сентября 2018
Плагин | |
Название | schevents |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 replace_events($eventid, $date)
- 2.2 delete_events($date=null)
- 2.3 get_cstream_events(csid, $status=null, $begin=null, $end=null)
- 2.4 get_teacher_events($tcid, $status=null, $begin=null, $end=null)
- 2.5 get_department_events($dpid, $status=null, $begin=null, $end=null)
- 2.6 get_pevent($point, $event)
- 2.7 get_pointevents($point, $cstreamid = null, $cancel_event = false)
- 2.8 get_points_and_events($plans, $cstreamid, $cancel_event = false )
- 2.9 canceled_event($eventid, $cancel_all = false)
- 2.10 get_replace_event($eventid)
- 2.11 get_plansid_anchored_day($date = null)
- 2.12 get_listing($limitfrom = null, $limitnum = null, $conds=null, $countonly=false)
- 2.13 get_select_listing($inputconds)
- 2.14 Планы:
- 3 События
- 4 Задания
Таблица в базе данных
schevents - учебные события, отображенные на реальные даны. Содержит информацию о реальной дате и времени учебного события, его статусе (проведено/не проведено), собитии-замене, исходном шаблоне, подразделении, расписанию которого принадлежит события и другие.
Подробный формат полей в таблице:
- templateid - шаблон расписания в таблице schtemplates
- dayid - день расписания, по которому было создано событие. Все запланированные(plan) и отложенные (postponed) события должны быть привязаны к существующим дням (то есть дняв с статусе active). Если в поле dayid стоит null - это нормальная ситуация. Она означает, что событие было создано вручную завучем, и не связано с шаблонами расписания.
- planid - тема урока в плане
- type - тип события: обычный урок, совместный урок(например, учитель ведет свой обычный урок и параллельно ведет урок по совмещению от заболевшего учителя), бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный).
- joinid - id обычного урока, к которому присоединяется "бесплатный" , "совместный" или "интегрированный" либо 0
- cstreamid - учебный поток в таблице cstreams
- teacherid - БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ id преподавателя в таблице persons
- date - дата и время начала события по UTC
- duration - продолжительность события в секундах
- place - место проведения события (текстовое поле)
- replaceid - id события, которое заменяется данным событием
- status - список статусов указан в одноименном плагине рабочих процессов schevents
- form - форма урока (очно/дистанционно)
- appointmentid - назначение на должность, в рамках которого проходит урок (таблица appointments )
- ahours - продолжительность урока в академических часах
- rhours - продолжительность в условных часах, рассчитанная по формуле(ahours * programmitem.salfactor * programmsbcs.salfactor * schtemplates.salfactor * конфиг.поправаподразделения * конфиг.поправкапоколичествуучеников * cstreams.salfactor + ahours * cstreams.substsalfactor)
- salfactor - применяемый итоговый коэффициент (вычисляется как один час, к которому применены все действующие для данного урока поправочные коэффициенты или один замещающий)
- salfactorparts - сериализованный объект с полями: $obj->vars-> значения всех действующих на момент расчета коэффициентов, $obj->formula - формула расчета
- url - ссылка на занятие (текстовое поле формата url)
Дополнительные методы:
replace_events($eventid, $date)
Формирует замену для события событием.
Аргументы:
- $eventid(int) - id события, для которого формируется замена.
- $data(int) - дата, на которую переносится событие
Возвращаемые значения:
- (bool) true в случае успеха или false если обновление не удалось.
Структура работы:
В поле replaceid заменяемого события записываем id события, которое будет его заменять и обновляем запись в таблице БД.
delete_events($date=null)
Удаляет все события дня.
Аргументы:
- $date - день, для которого надо удалить все события, по умолчанию - текущий день (null).
Возвращаемые значения:
- (bool) true если все записи удалились и false в остальных случаях
Структура работы:
- если метка времени не указана, устанавливаем текущую метку времени.
- формируем метку времени начала дня.
- получаем все существующие события.
- для каждого события проверяем, если метка времени события попадает в промежуток даты начала дня и даты конца дня, то удаляем событие.
- возвращаем результат.
get_cstream_events(csid, $status=null, $begin=null, $end=null)
Получает список событий для учебного потока.
Аргументы:
- $csid(int) - id учебного потока в таблице cstreams .
- $status(string) - статус учебного процесса, по умолчанию - все (null).
- $begin(int) - дата начала события, по умолчанию - все (null).
- $end(int) - дата окончания события, по умолчанию - все (null).
Возвращаемые значения:
- (array) события для учебного потока.
- (bool) false если события не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список событий:
- если указываются даты начала и окончания - события в указанный промежуток,
- если даты начала и окончания не указываются или указываются как null- события в любой день.
- если указывается статус - группы с указанным статусом,
- если статус не указывается или указывается как null - события с любым статусом.
get_teacher_events($tcid, $status=null, $begin=null, $end=null)
Получает список событий для преподавателя.
Аргументы:
- $tcid(int) - id преподавателя в таблице persons .
- $status(string) - статус учебного процесса, по умолчанию - все (null).
- $begin(int) - дата начала события, по умолчанию - все (null).
- $end(int) - дата окончания события, по умолчанию - все (null).
Возвращаемые значения:
- (array) события для учебного потока.
- (bool) false если события не найдены.
Структура работы:
- находим все учебные потоки для преподавателя.
- для каждого учебного потока находим его события и заносим в массив.
- возвращаем резальтат.
get_department_events($dpid, $status=null, $begin=null, $end=null)
Получает список событий, принадлежащих структурному подразделению.
Аргументы:
- $dpid(int) - id структурного подразделения в таблице departments .
- $status(string) - статус учебного процесса, по умолчанию - все (null).
- $begin(int) - дата начала события, по умолчанию - все (null).
- $end(int) - дата окончания события, по умолчанию - все (null).
Возвращаемые значения:
- (array) события для учебного потока.
- (bool) false если события не найдены.
Структура работы:
- находим все учебные потоки для подразделения.
- для каждого учебного потока находим его события и заносим в массив.
- возвращаем резальтат.
get_pevent($point, $event)
Состыковывает контрольную точку с событием.
Аргументы:
- $point(obj) - контрольная точка
- $event(obj) - событие
Возвращаемые значения:
- (obj) - cостыкованную запись
get_pointevents($point, $cstreamid = null, $cancel_event = false)
Получает массив состыкованных записей контрольной точки с ее событиями.
Аргументы:
- $point(obj) - контрольная точка
- $cstreamid - учебный поток в таблице cstreams
- $cancel_event(bool) - нужно ли отображать отмененные уроки, по умолчанию false
Возвращаемые значения:
- (array) - список состыкованных записей
get_points_and_events($plans, $cstreamid, $cancel_event = false )
Получает массив состыкованных записей контрольных точек с их событиями.
Аргументы:
- $plans(array) - массив записей контрольных точек
- $cstreamid(int) - учебный поток в таблице cstreams
- $cancel_event(bool) - нужно ли отображать отмененные уроки, по умолчанию false
Возвращаемые значения:
- (array) - список состыкованных записей
canceled_event($eventid, $cancel_all = false)
Отменяет урок.
Аргументы:
- $eventid(int) - id урока
- $cancel_all(bool) - отменить все события: true - все, включая замененные, по умолчанию false
Возвращаемые значения:
- (bool) true - если удалось отменить, false - иначе
get_replace_event($eventid)
Находит последнюю замену для события.
Аргументы:
- $eventid(int) - id события для которого ищем замену
Возвращаемые значения:
- int|bool - id замененного события или false
get_plansid_anchored_day($date = null)
Возвращает массив id КТ уроков для указанного дня.
Аргументы:
- $date(int) - день, по котором надо сделать выборку, если не указано, то текущий день, по умолчанию null
Возвращаемые значения:
- array|bool - массив id или false - если ничего не найдено
get_listing($limitfrom = null, $limitnum = null, $conds=null, $countonly=false)
Возвращает список событий по заданным критериям
Аргументы:
- $limitfrom(int) - начиная с какой записи просматривается фрагмент списка записей, по умолчанию null
- $limitnum(int) - сколько записей нужно извлечь из базы, по умолчанию null
- $conds(obj) - объект со списком свойств, по которым будет происходить поиск, по умолчанию null
- $countonly(obj) - только вернуть количество записей по указанным условиям, по умолчанию false
Возвращаемые значения:
- array массив записей из базы, или false в случае ошибки
get_select_listing($inputconds)
Возвращает фрагмент sql-запроса после слова WHERE
Аргументы:
- $inputconds(obj) - список полей с условиями запроса в формате "поле_БД->значение"
Возвращаемые значения:
- string
Планы:
Дополнительные методы:
- Создать событие на день по объекту шаблона расписания
- Получить статистику событий по структурному подразделению
- Получить статитстику событий по преподавателю
- Получить статистику событий по учебному процессу
- Получить статистику событий с участием студента
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | schevents | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу schevents. |
storage | schevents | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице schevents. |
storage | schevents | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы schevents. |
Задания
Код задания | Дополнительный параметр | Пояснение |
---|---|---|
delete_broken_events | Необязателен. Указывается дата, с которой ищутся занятия, если не указан по-умолчанию выбираются все. | Находит все запланированные и отложенные занятия привязанные к дням начиная с указанной даты. Отменяет те события, чьи дни были удалены или отсутствуют в БД. |