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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:: : id урока не нужно: мы привязываемся через schevents к теме в плане)
(Подробный формат полей в таблице:)
 
(не показано 16 промежуточных версий 4 участников)
Строка 1: Строка 1:
 +
{{Infobox_Plugin
 +
| name = cpgrades
 +
| type = storages
 +
}}
 
===Таблица в базе данных===
 
===Таблица в базе данных===
 
''cpgrades'' - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации).
 
''cpgrades'' - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации).
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
* cpassedid - подписка на дисциплину
+
* cpassedid - подписка на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]] (связь с personid студента осуществляется через id подписки)
* planid - контрольная точка или тема в плане, за которую получена оценка
+
* planid - контрольная точка или тема в плане (таблица [[Разработка:storages/plans | plans ]]), за которую получена оценка
 
* grade - полученная оценка
 
* grade - полученная оценка
 
* date - дата получения оценки
 
* date - дата получения оценки
* notice - комментарий преподавателя к отметке (видет студенту и родителям)
+
* notice - комментарий преподавателя к отметке (виден студенту и родителям)
 
* typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
 
* typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
 
* mdlinstance - id задания в moodle, с которым выполнялась синхронизация
 
* mdlinstance - id задания в moodle, с которым выполнялась синхронизация
* teacherid - id сотрудника по справочнику persons, вручную выставившего отметку
+
* orderid - id приказа в таблице [[Разработка:storages/orders | orders ]], в соответствии с которым была выставлена эта оценка
* status - статус оценки (черновик, поставлена, удалена)
+
* teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную (если не синхронизация) выставившего отметку
 +
* status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) )
 +
* estimatedin - источник, выставивший оценку в последний раз
 +
 
 +
====Комментарии====
 +
* История оценок выставляется в эту же таблицу, старые оценки не удаляются, актуальной считается одна, самая последняя по дате
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
* Получить все оценки (одного студента) по подписке на дисциплину вместе с информацией из плана
+
 
* Сохранить (добавить/обновить) отметку студента (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
+
===='''save_grade_student($obj)'''====
 +
 
 +
Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
 +
 
 +
''Аргументы:''
 +
* $obj(object) - запись в таблицу БД.
 +
''Возвращаемые значения:''
 +
* (int) id вставленной записи, если запись вставляется.
 +
* (bool) - true, если запись обновляется и false, если операции не удались.
 +
''Структура работы:''
 +
# находим запись в таблице БД по данным из обьекта:
 +
#* если запись была найдена и ее статус при этом является черновым, мы ее обновляем и возвращаем результат.
 +
#* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат.
 +
 
 +
 
 +
===='''save_grade_students($obj)'''====
 +
 
 +
Cохраняет отметки всех студентов.
 +
 
 +
''Аргументы:''
 +
* $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки).
 +
''Возвращаемые значения:''
 +
* (bool) true, если все записи успешно обновильсь/вставились, и false, во всех остальных случаях.
 +
''Структура работы:''
 +
# обновляем/вставляем все записи в БД.
 +
#* перебираем исходный массив из данных объекта.
 +
#* формируем объект для обновления/вставки в БД.
 +
#* обновляем/вставляем объект в таблицу БД.
 +
# возвращаем результат.
 +
 
 +
 
 +
===='''get_grade_student_cpassed($cpid, $plid)'''====
 +
 
 +
Получает последнюю по дате оценку студента по id-подписки и id контрольной точки
 +
 
 +
''Аргументы:''
 +
* $cpid(int) - id подписки в таблице [[Разработка:storages/cpassed | cpassed ]].
 +
* $plid(int) - id контрольной точки в таблице [[Разработка:storages/plans | plans ]].
 +
''Возвращаемые значения:''
 +
* (object) запись из таблицы БД - последняя по дате оценка студента.
 +
* (bool) - false, если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# находим все оценки студента отсортированных по дате в порядке убывания.
 +
# возвращаем первую стоящюю в списке оценку.
 +
 
 +
 
 +
===='''get_grade_student($stid, $csid, $plid)'''====
 +
 
 +
Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки.
 +
 
 +
''Аргументы:''
 +
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 +
* $cpid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
* $plid(int) - id контрольной точки в таблице [[Разработка:storages/plans | plans ]].
 +
''Возвращаемые значения:''
 +
* (object) запись из таблицы БД - последняя по дате оценка студента.
 +
* (bool) - false, если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# по id учебного потока и id студента находим подписку студента на учебный поток.
 +
# по id подписка и id контрольной точки находим последнюю по дате оценку студента.
 +
# возвращаем результат.
 +
 
 +
 
 +
===='''get_all_grade_student($cpid)'''====
 +
 
 +
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.
 +
 
 +
''Аргументы:''
 +
* $cpid(int) - id подписки на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]].
 +
''Возвращаемые значения:''
 +
* (array) - список оценок вместе c планом.
 +
* (bool) - false, если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# находим все оценки студента по подписке.
 +
# создаем массив оценок вместе с информацией из плана.
 +
#* создаем новый объек со свойствами:
 +
#** grade - оценка студента
 +
#** plan - контрольная точка (информация из учебного плана, таблица [[Разработка:storages/plans | plans ]])
 +
#* записываем объект в массив
 +
# возвращаем созданный массив
 +
 
 +
===Планы:===
 +
====Дополнительные методы:====
 +
* Получить историю изменения оценок по id подписки и id контрольной точки
 +
===События===
 +
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
 +
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|colspan=5 align=center | ''Этот плагин не перехватывает никаких событий''
 +
|}
 +
====Генерируемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые генерирует этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
|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.
 +
|}

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

Плагин
Название 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.