Разработка:storages/cpgrades — различия между версиями
Yumeneco (обсуждение | вклад) (→Дополнительные методы:) |
(→Подробный формат полей в таблице:) |
||
(не показано 7 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Infobox_Plugin | ||
+ | | name = cpgrades | ||
+ | | type = storages | ||
+ | }} | ||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
''cpgrades'' - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации). | ''cpgrades'' - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации). | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * cpassedid - подписка на дисциплину (связь с personid студента осуществляется через id подписки) | + | * cpassedid - подписка на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]] (связь с personid студента осуществляется через id подписки) |
− | * planid - контрольная точка или тема в плане, за которую получена оценка | + | * planid - контрольная точка или тема в плане (таблица [[Разработка:storages/plans | plans ]]), за которую получена оценка |
* grade - полученная оценка | * grade - полученная оценка | ||
* date - дата получения оценки | * date - дата получения оценки | ||
Строка 10: | Строка 14: | ||
* typesync - тип синхронизации (выставление вручную, синхронизация с moodle) | * typesync - тип синхронизации (выставление вручную, синхронизация с moodle) | ||
* mdlinstance - id задания в moodle, с которым выполнялась синхронизация | * mdlinstance - id задания в moodle, с которым выполнялась синхронизация | ||
− | * orderid - id приказа, в соответствии с которым была выставлена эта оценка | + | * orderid - id приказа в таблице [[Разработка:storages/orders | orders ]], в соответствии с которым была выставлена эта оценка |
− | * teacherid - id сотрудника по справочнику persons, вручную (если не синхронизация) выставившего отметку | + | * teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную (если не синхронизация) выставившего отметку |
* status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) ) | * status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) ) | ||
+ | * estimatedin - источник, выставивший оценку в последний раз | ||
====Комментарии==== | ====Комментарии==== | ||
Строка 19: | Строка 24: | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
− | '''save_grade_student()''' | + | ===='''save_grade_student($obj)'''==== |
Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования) | Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования) | ||
Строка 27: | Строка 32: | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (int) id вставленной записи, если запись вставляется. | * (int) id вставленной записи, если запись вставляется. | ||
− | * (bool) true, если запись обновляется | + | * (bool) - true, если запись обновляется и false, если операции не удались. |
− | |||
''Структура работы:'' | ''Структура работы:'' | ||
# находим запись в таблице БД по данным из обьекта: | # находим запись в таблице БД по данным из обьекта: | ||
Строка 34: | Строка 38: | ||
#* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат. | #* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат. | ||
− | '''save_grade_students()''' | + | |
+ | ===='''save_grade_students($obj)'''==== | ||
Cохраняет отметки всех студентов. | Cохраняет отметки всех студентов. | ||
Строка 41: | Строка 46: | ||
* $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки). | * $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки). | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (bool) true, если все записи успешно обновильсь/вставились | + | * (bool) true, если все записи успешно обновильсь/вставились, и false, во всех остальных случаях. |
− | |||
''Структура работы:'' | ''Структура работы:'' | ||
# обновляем/вставляем все записи в БД. | # обновляем/вставляем все записи в БД. | ||
Строка 50: | Строка 54: | ||
# возвращаем результат. | # возвращаем результат. | ||
− | '''get_grade_student_cpassed()''' | + | |
+ | ===='''get_grade_student_cpassed($cpid, $plid)'''==== | ||
Получает последнюю по дате оценку студента по id-подписки и id контрольной точки | Получает последнюю по дате оценку студента по id-подписки и id контрольной точки | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $cpid(int) - id подписки. | + | * $cpid(int) - id подписки в таблице [[Разработка:storages/cpassed | cpassed ]]. |
− | * $plid(int) - id контрольной точки. | + | * $plid(int) - id контрольной точки в таблице [[Разработка:storages/plans | plans ]]. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (object) запись из таблицы БД - последняя по дате оценка студента. | * (object) запись из таблицы БД - последняя по дате оценка студента. | ||
− | * (bool) false если ни одной оценки не найдено. | + | * (bool) - false, если ни одной оценки не найдено. |
''Структура работы:'' | ''Структура работы:'' | ||
# находим все оценки студента отсортированных по дате в порядке убывания. | # находим все оценки студента отсортированных по дате в порядке убывания. | ||
# возвращаем первую стоящюю в списке оценку. | # возвращаем первую стоящюю в списке оценку. | ||
− | |||
− | Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки | + | ===='''get_grade_student($stid, $csid, $plid)'''==== |
+ | |||
+ | Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $stid(int) - id студента. | + | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. |
− | * $cpid(int) - id учебного потока. | + | * $cpid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. |
− | * $plid(int) - id контрольной точки. | + | * $plid(int) - id контрольной точки в таблице [[Разработка:storages/plans | plans ]]. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (object) запись из таблицы БД - последняя по дате оценка студента. | * (object) запись из таблицы БД - последняя по дате оценка студента. | ||
− | * (bool) false если ни одной оценки не найдено. | + | * (bool) - false, если ни одной оценки не найдено. |
''Структура работы:'' | ''Структура работы:'' | ||
# по id учебного потока и id студента находим подписку студента на учебный поток. | # по id учебного потока и id студента находим подписку студента на учебный поток. | ||
Строка 80: | Строка 86: | ||
# возвращаем результат. | # возвращаем результат. | ||
− | '''get_all_grade_student()''' | + | |
+ | ===='''get_all_grade_student($cpid)'''==== | ||
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана. | Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $cpid(int) - id подписки. | + | * $cpid(int) - id подписки на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]]. |
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) список оценок вместе c планом. | + | * (array) - список оценок вместе c планом. |
− | * (bool) false если ни одной оценки не найдено. | + | * (bool) - false, если ни одной оценки не найдено. |
''Структура работы:'' | ''Структура работы:'' | ||
# находим все оценки студента по подписке. | # находим все оценки студента по подписке. | ||
Строка 94: | Строка 101: | ||
#* создаем новый объек со свойствами: | #* создаем новый объек со свойствами: | ||
#** grade - оценка студента | #** grade - оценка студента | ||
− | #** plan - контрольная точка (информация из плана) | + | #** plan - контрольная точка (информация из учебного плана, таблица [[Разработка:storages/plans | plans ]]) |
#* записываем объект в массив | #* записываем объект в массив | ||
# возвращаем созданный массив | # возвращаем созданный массив | ||
Строка 101: | Строка 108: | ||
====Дополнительные методы:==== | ====Дополнительные методы:==== | ||
* Получить историю изменения оценок по id подписки и id контрольной точки | * Получить историю изменения оценок по 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, если операции не удались.
Структура работы:
- находим запись в таблице БД по данным из обьекта:
- если запись была найдена и ее статус при этом является черновым, мы ее обновляем и возвращаем результат.
- если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат.
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 контрольной точки
Аргументы:
Возвращаемые значения:
- (object) запись из таблицы БД - последняя по дате оценка студента.
- (bool) - false, если ни одной оценки не найдено.
Структура работы:
- находим все оценки студента отсортированных по дате в порядке убывания.
- возвращаем первую стоящюю в списке оценку.
get_grade_student($stid, $csid, $plid)
Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки.
Аргументы:
- $stid(int) - id студента в таблице persons .
- $cpid(int) - id учебного потока в таблице cstreams .
- $plid(int) - id контрольной точки в таблице plans .
Возвращаемые значения:
- (object) запись из таблицы БД - последняя по дате оценка студента.
- (bool) - false, если ни одной оценки не найдено.
Структура работы:
- по id учебного потока и id студента находим подписку студента на учебный поток.
- по id подписка и id контрольной точки находим последнюю по дате оценку студента.
- возвращаем результат.
get_all_grade_student($cpid)
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.
Аргументы:
- $cpid(int) - id подписки на дисциплину в таблице cpassed .
Возвращаемые значения:
- (array) - список оценок вместе c планом.
- (bool) - false, если ни одной оценки не найдено.
Структура работы:
- находим все оценки студента по подписке.
- создаем массив оценок вместе с информацией из плана.
- создаем новый объек со свойствами:
- grade - оценка студента
- plan - контрольная точка (информация из учебного плана, таблица plans )
- записываем объект в массив
- создаем новый объек со свойствами:
- возвращаем созданный массив
Планы:
Дополнительные методы:
- Получить историю изменения оценок по 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. |