Разработка:storages/schevents

Материал из DOF
Версия от 17:36, 16 февраля 2010; Ilya (обсуждение | вклад) (Добавлено описание событий и проставлены категории)
Перейти к: навигация, поиск
Плагин
Название schevents
Тип storages


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

schevents - учебные события, отображенные на реальные даны. Содержит информацию о реальной дате и времени учебного события, его статусе (проведено/не проведено), собитии-замене, исходном шаблоне, подразделении, расписанию которого принадлежит события и другие.

Подробный формат полей в таблице:

  • templateid - шаблон расписания
  • dayid - день расписания, по которому было создано событие
  • planid - тема урока в плане
  • type - тип события: обычный урок, бесплатный урок (например, учитель химии ведет урок химии, который связан и с биологией, при этом в журнале "биологии" отмечается бесплатный урок, который учитель биологии не вел, но тема пройдена), интегрированный урок (например, учитель географии приглашает на свой урок учителя информатики для занятия в ГИС, при этом урок записывается и в журнал информатики и преподаватель информатики получает за него деньги; при этом "итегрированным" считается только урок информатики, а географии - обычный).
  • joinid - id обычного урока, к которому присоединяется "бесплатный" или "интегрированный" либо 0
  • cstreamid - учебный поток в таблице cstreams
  • teacherid - id преподавателя в таблице persons
  • date - дата и время начала события по UTC
  • duration - продолжительность события в секундах
  • place - место проведения события (текстовое поле)
  • replaceid - id события, которое заменяется данным событием
  • status - список статусов указан в одноименном плагине рабочих процессов schevents

Дополнительные методы:

replace_events()

Формирует замену для события событием.

Аргументы:

  • $eventid(int) - id события, для которого формируется замена.
  • $replaceid(int) - id события, которым заменяем.

Возвращаемые значения:

  • (bool) true в случае успеха или false если обновление не удалось.

Структура работы:

В поле replaceid заменяемого события записываем id события, которое будет его заменять и обновляем запись в таблице БД.

delete_events()

Удаляет все события дня.

Аргументы:

  • $date - день, для которого надо удалить все события, по умолчанию - текущий день (null).

Возвращаемые значения:

  • (bool) true если все записи удалились и false в остальных случаях

Структура работы:

  1. если метка времени не указана, устанавливаем текущую метку времени.
  2. формируем метку времени начала дня.
  3. получаем все существующие события.
  4. для каждого события проверяем, если метка времени события попадает в промежуток даты начала дня и даты конца дня, то удаляем событие.
  5. возвращаем результат.

get_cstream_events()

Получает список событий для учебного потока.

Аргументы:

  • $csid(int) - id учебного потока в таблице cstreams .
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

Возвращаемые значения:

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

Структура работы:

  • формируем SQL-запрос и возвращаем список событий:
    • если указываются даты начала и окончания - события в указанный промежуток,
    • если даты начала и окончания не указываются или указываются как null- события в любой день.
    • если указывается статус - группы с указанным статусом,
    • если статус не указывается или указывается как null - события с любым статусом.

get_teacher_events()

Получает список событий для преподавателя.

Аргументы:

  • $tcid(int) - id преподавателя в таблице persons .
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

Возвращаемые значения:

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

Структура работы:

  1. находим все учебные потоки для преподавателя.
  2. для каждого учебного потока находим его события и заносим в массив.
  3. возвращаем резальтат.

get_department_events()

Получает список событий, принадлежащих структурному подразделению.

Аргументы:

  • $dpid(int) - id структурного подразделения в таблице departments .
  • $status(string) - статус учебного процесса, по умолчанию - все (null).
  • $begin(int) - дата начала события, по умолчанию - все (null).
  • $end(int) - дата окончания события, по умолчанию - все (null).

Возвращаемые значения:

  • (array) события для учебного потока.
  • (bool) false если события не найдены.

Структура работы:

  1. находим все учебные потоки для подразделения.
  2. для каждого учебного потока находим его события и заносим в массив.
  3. возвращаем резальтат.


  • get_pevent($point, $event) - состыковывать контрольную точку с событием.
  • get_pointevents($point) - получить массив состыкованных записей контрольной точки с ее событиями.
  • get_points_and_events($plans) - получить массив состыкованных записей контрольных точек с их событиями.

Планы:

Дополнительные методы:

  • Создать событие на день по объекту шаблона расписания
  • Получить статистику событий по структурному подразделению
  • Получить статитстику событий по преподавателю
  • Получить статистику событий по учебному процессу
  • Получить статистику событий с участием студента

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.