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

Материал из DOF
Перейти к: навигация, поиск
Плагин
Название cpgrades
Тип storages


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

cpgrades - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации).

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

  • cpassedid - подписка на дисциплину в таблице cpassed (связь с personid студента осуществляется через id подписки)
  • planid - контрольная точка или тема в плане (таблица plans ), за которую получена оценка
  • grade - полученная оценка
  • date - дата получения оценки
  • notice - комментарий преподавателя к отметке (виден студенту и родителям)
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
  • mdlinstance - id задания в moodle, с которым выполнялась синхронизация
  • orderid - id приказа в таблице orders , в соответствии с которым была выставлена эта оценка
  • teacherid - id сотрудника по справочнику persons , вручную (если не синхронизация) выставившего отметку
  • status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) )
  • estimatedin - источник, выставивший оценку в последний раз

Комментарии

  • История оценок выставляется в эту же таблицу, старые оценки не удаляются, актуальной считается одна, самая последняя по дате

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

save_grade_student($obj)

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

Аргументы:

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

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

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

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

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


save_grade_students($obj)

Cохраняет отметки всех студентов.

Аргументы:

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

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

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

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

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


get_grade_student_cpassed($cpid, $plid)

Получает последнюю по дате оценку студента по id-подписки и id контрольной точки

Аргументы:

  • $cpid(int) - id подписки в таблице cpassed .
  • $plid(int) - id контрольной точки в таблице plans .

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

  • (object) запись из таблицы БД - последняя по дате оценка студента.
  • (bool) - false, если ни одной оценки не найдено.

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

  1. находим все оценки студента отсортированных по дате в порядке убывания.
  2. возвращаем первую стоящюю в списке оценку.


get_grade_student($stid, $csid, $plid)

Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $cpid(int) - id учебного потока в таблице cstreams .
  • $plid(int) - id контрольной точки в таблице plans .

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

  • (object) запись из таблицы БД - последняя по дате оценка студента.
  • (bool) - false, если ни одной оценки не найдено.

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

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


get_all_grade_student($cpid)

Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.

Аргументы:

  • $cpid(int) - id подписки на дисциплину в таблице cpassed .

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

  • (array) - список оценок вместе c планом.
  • (bool) - false, если ни одной оценки не найдено.

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

  1. находим все оценки студента по подписке.
  2. создаем массив оценок вместе с информацией из плана.
    • создаем новый объек со свойствами:
      • grade - оценка студента
      • plan - контрольная точка (информация из учебного плана, таблица plans )
    • записываем объект в массив
  3. возвращаем созданный массив

Планы:

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

  • Получить историю изменения оценок по id подписки и id контрольной точки

События

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

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

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

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

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

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

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

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

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

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

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