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

Материал из DOF
Перейти к: навигация, поиск
м (Дополнительные методы:)
(Подробный формат полей в таблице:)
 
(не показано 11 промежуточных версий 5 участников)
Строка 1: Строка 1:
 +
{{Infobox_Plugin
 +
| name = schpresences
 +
| type = storages
 +
}}
 +
 
===Таблица в базе данных===
 
===Таблица в базе данных===
 
''schpresences'' - содержит сведения о присутствии или отсутствии учащихся на учебном событии.
 
''schpresences'' - содержит сведения о присутствии или отсутствии учащихся на учебном событии.
Строка 4: Строка 9:
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
 
* eventid - событие
 
* eventid - событие
* personid - ученик
+
* personid - ученик в таблице [[Разработка:storages/persons | persons ]]
 
* present - присутствие: 0/1
 
* present - присутствие: 0/1
* orderid - id приказа, в соответствии в котором был выставлен статус присутсвия
+
* orderid - id приказа в таблице [[Разработка:storages/orders | orders ]], в соответствии в котором был выставлен статус присутсвия
 +
* mdlevent - Id события в moodle
 +
* reasonid - ID причины отсутствия
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
* '''save_present_student'''($obj) - сохранить статус присутствия/отсутствия ученика на занятии. Обновляет запись в базе данных если запись с данной персоной и с данным событием из объекта уже существует и записывает ее, если нет.
+
===='''save_present_student($obj)'''====
* '''save_present_students'''($obj) - сохранить список статусов присутствия/отсутствия учеников на занятии. Входными данными является объект, в котором первое свойство(eventid) является id события, а второе(presents) - массив записей, где ключ - id персоны, значение - статус присутствия. Перебирая данный массив создает обьект для сохранения в БД данных отдельно по каждому ученику и сохраняет успользуя предыдущую функцию.  
+
 
* '''get_present_status'''($stid, $evid) - получить статус присутствия ученика на занятии.
+
Сохраняет статус присутствия/отсутствия ученика на занятии.  
* '''get_present_students'''($evid) - получить статусы присутствия учеников на занятии. По данному событию ищет все связанные с ним статусы присутствия/отсутствия учеников и формирует для возврата массив, где ключ - id персоны, значение - статус присутствия.
+
 
 +
''Аргументы:''  
 +
* $obj(object) - запись в таблицу БД.
 +
''Возвращаемые значения:''
 +
* (int) id вставленной записи, если запись вставляется.
 +
* (bool) true, если запись обновляется.
 +
* (bool) false, если операции не удались.
 +
''Структура работы:''
 +
#находим запись в таблице БД по данным из обьекта:
 +
#* если запись была найдена, мы ее обновляем и возвращаем результат.
 +
#* если не найдена - запысываем в таблицу БД и возвращаем результат.
 +
 +
===='''save_present_students($obj)'''====
  
====Планируются:====
+
Сохраняет список статусов присутствия/отсутствия учеников на занятии.
 +
 
 +
''Аргументы:''
 +
* $obj(object) - запись в таблицу БД (объект, в котором первое свойство(eventid) является id события, а второе(presents) - массив записей, где ключ - id персоны, значение - статус присутствия).
 +
''Возвращаемые значения:''
 +
* (bool) true, если все записи успешно обновились/вставились.
 +
* (bool) false во всех остальных случаях.
 +
''Структура работы:''
 +
# обновляем/вставляем все записи в БД
 +
#* перебираем исходный массив из данных объекта.
 +
#* формируем объект для обновления/вставки в БД.
 +
#* обновляем/вставляем объект в таблицу БД.
 +
# возвращаем результат.
 +
 
 +
===='''get_present_status($stid, $evid)'''====
 +
 
 +
Получает статус присутствия ученика на занятии.
 +
 
 +
''Аргументы:''
 +
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 +
* $evid(int) - id события.
 +
''Возвращаемые значения:''
 +
* (int) статус присутствия, если собитие существует.
 +
* (bool) false если события нет.
 +
''Структура работы:''
 +
 
 +
# находим запись в таблице БД.
 +
#* если запись найдена, возвращаем статус присутствия.
 +
#* если не найдена, возвращаем false.
 +
 
 +
===='''get_present_students($evid)'''====
 +
 
 +
Получает статусы присутствия учеников на занятии.
 +
 
 +
''Аргументы:''
 +
* $evid(int) - id события
 +
''Возвращаемые значения:''
 +
* (array) массив, где ключ - id персоны, значение - статус присутствия
 +
''Структура работы:''
 +
# находим все записи связанные с данным собитием в таблице БД.
 +
# формируем массив id ученика=>статус присутствия по каждому из событий.
 +
# возвращаем результат.
 +
 
 +
===Планы:===
 +
====Дополнительные методы:====
 
* Получить статистику посещения учеником занятий по id учебного процесса и id ученика: количество прошедших занятий, количество посещенных занятий, доля посещенных занятий (от 0 до 1), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => статус посещения.
 
* Получить статистику посещения учеником занятий по id учебного процесса и id ученика: количество прошедших занятий, количество посещенных занятий, доля посещенных занятий (от 0 до 1), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => статус посещения.
 
* Получить статистику посещения учениками занятий по id учебного процесса (общие показатели по группе), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => =>id_студента =>статус посещения.
 
* Получить статистику посещения учениками занятий по id учебного процесса (общие показатели по группе), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => =>id_студента =>статус посещения.
 +
 +
===События===
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''
 +
|}
 +
====Генерируемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые генерирует этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|storage
 +
|schpresences
 +
|insert
 +
|Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
 +
''Пример:'' array('new' => $dataobject)
 +
|Генерируется каждый раз при вставке новой записи в таблицу schpresences.
 +
|-
 +
|storage
 +
|schpresences
 +
|update
 +
|Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
 +
''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new)
 +
|Генерируется каждый раз при обновлении записи в таблице schpresences.
 +
|-
 +
|storage
 +
|schpresences
 +
|delete
 +
|Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
 +
''Пример:'' array('old' => $dataobject)
 +
|Генерируется каждый раз при удалении записи из таблицы schpresences.
 +
|}

Текущая версия на 12:53, 13 сентября 2018

Плагин
Название schpresences
Тип storages


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

schpresences - содержит сведения о присутствии или отсутствии учащихся на учебном событии.

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

  • eventid - событие
  • personid - ученик в таблице persons
  • present - присутствие: 0/1
  • orderid - id приказа в таблице orders , в соответствии в котором был выставлен статус присутсвия
  • mdlevent - Id события в moodle
  • reasonid - ID причины отсутствия

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

save_present_student($obj)

Сохраняет статус присутствия/отсутствия ученика на занятии.

Аргументы:

  • $obj(object) - запись в таблицу БД.

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

  • (int) id вставленной записи, если запись вставляется.
  • (bool) true, если запись обновляется.
  • (bool) false, если операции не удались.

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

  1. находим запись в таблице БД по данным из обьекта:
    • если запись была найдена, мы ее обновляем и возвращаем результат.
    • если не найдена - запысываем в таблицу БД и возвращаем результат.

save_present_students($obj)

Сохраняет список статусов присутствия/отсутствия учеников на занятии.

Аргументы:

  • $obj(object) - запись в таблицу БД (объект, в котором первое свойство(eventid) является id события, а второе(presents) - массив записей, где ключ - id персоны, значение - статус присутствия).

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

  • (bool) true, если все записи успешно обновились/вставились.
  • (bool) false во всех остальных случаях.

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

  1. обновляем/вставляем все записи в БД
    • перебираем исходный массив из данных объекта.
    • формируем объект для обновления/вставки в БД.
    • обновляем/вставляем объект в таблицу БД.
  2. возвращаем результат.

get_present_status($stid, $evid)

Получает статус присутствия ученика на занятии.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $evid(int) - id события.

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

  • (int) статус присутствия, если собитие существует.
  • (bool) false если события нет.

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

  1. находим запись в таблице БД.
    • если запись найдена, возвращаем статус присутствия.
    • если не найдена, возвращаем false.

get_present_students($evid)

Получает статусы присутствия учеников на занятии.

Аргументы:

  • $evid(int) - id события

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

  • (array) массив, где ключ - id персоны, значение - статус присутствия

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

  1. находим все записи связанные с данным собитием в таблице БД.
  2. формируем массив id ученика=>статус присутствия по каждому из событий.
  3. возвращаем результат.

Планы:

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

  • Получить статистику посещения учеником занятий по id учебного процесса и id ученика: количество прошедших занятий, количество посещенных занятий, доля посещенных занятий (от 0 до 1), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => статус посещения.
  • Получить статистику посещения учениками занятий по id учебного процесса (общие показатели по группе), если установлен флаг - массив с посещаемостью всех прошедших занятий id_события => =>id_студента =>статус посещения.

События

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

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

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

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage schpresences insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу schpresences.
storage schpresences update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице schpresences.
storage schpresences delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы schpresences.