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

Материал из DOF
Перейти к: навигация, поиск
(Добавлено описание событий и проставлены категории)
(Подробный формат полей в таблице:)
 
(не показаны 3 промежуточные версии 2 участников)
Строка 17: Строка 17:
 
* teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную (если не синхронизация) выставившего отметку
 
* teacherid - id сотрудника по справочнику [[Разработка:storages/persons | persons ]], вручную (если не синхронизация) выставившего отметку
 
* status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) )
 
* status - статус оценки (черновик (tmp), поставлена (put), удалена (delete) )
 +
* estimatedin - источник, выставивший оценку в последний раз
  
 
====Комментарии====
 
====Комментарии====
Строка 23: Строка 24:
 
===Дополнительные методы:===
 
===Дополнительные методы:===
  
'''save_grade_student()'''
+
===='''save_grade_student($obj)'''====
  
 
Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
 
Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
Строка 31: Строка 32:
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (int) id вставленной записи, если запись вставляется.
 
* (int) id вставленной записи, если запись вставляется.
* (bool) true, если запись обновляется.
+
* (bool) - true, если запись обновляется и false, если операции не удались.
* (bool) false, если операции не удались.
 
 
''Структура работы:''
 
''Структура работы:''
 
# находим запись в таблице БД по данным из обьекта:
 
# находим запись в таблице БД по данным из обьекта:
Строка 38: Строка 38:
 
#* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат.
 
#* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат.
  
'''save_grade_students()'''
+
 
 +
===='''save_grade_students($obj)'''====
  
 
Cохраняет отметки всех студентов.
 
Cохраняет отметки всех студентов.
Строка 45: Строка 46:
 
* $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки).
 
* $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки).
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (bool) true, если все записи успешно обновильсь/вставились.
+
* (bool) true, если все записи успешно обновильсь/вставились, и false, во всех остальных случаях.
* (bool) false во всех остальных случаях.
 
 
''Структура работы:''
 
''Структура работы:''
 
# обновляем/вставляем все записи в БД.
 
# обновляем/вставляем все записи в БД.
Строка 54: Строка 54:
 
# возвращаем результат.
 
# возвращаем результат.
  
'''get_grade_student_cpassed()'''
+
 
 +
===='''get_grade_student_cpassed($cpid, $plid)'''====
  
 
Получает последнюю по дате оценку студента по id-подписки и id контрольной точки
 
Получает последнюю по дате оценку студента по id-подписки и id контрольной точки
Строка 63: Строка 64:
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
* (bool) false если ни одной оценки не найдено.
+
* (bool) - false, если ни одной оценки не найдено.
 
''Структура работы:''
 
''Структура работы:''
 
# находим все оценки студента отсортированных по дате в порядке убывания.
 
# находим все оценки студента отсортированных по дате в порядке убывания.
 
# возвращаем первую стоящюю в списке оценку.
 
# возвращаем первую стоящюю в списке оценку.
  
'''get_grade_student()'''
 
  
Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки
+
===='''get_grade_student($stid, $csid, $plid)'''====
 +
 
 +
Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки.
  
 
''Аргументы:''  
 
''Аргументы:''  
Строка 78: Строка 80:
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
* (bool) false если ни одной оценки не найдено.
+
* (bool) - false, если ни одной оценки не найдено.
 
''Структура работы:''
 
''Структура работы:''
 
# по id учебного потока и id студента находим подписку студента на учебный поток.
 
# по id учебного потока и id студента находим подписку студента на учебный поток.
Строка 84: Строка 86:
 
# возвращаем результат.
 
# возвращаем результат.
  
'''get_all_grade_student()'''
+
 
 +
===='''get_all_grade_student($cpid)'''====
  
 
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.
 
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.
Строка 91: Строка 94:
 
* $cpid(int) - id подписки на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]].
 
* $cpid(int) - id подписки на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]].
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список оценок вместе c планом.  
+
* (array) - список оценок вместе c планом.  
* (bool) false если ни одной оценки не найдено.
+
* (bool) - false, если ни одной оценки не найдено.
 
''Структура работы:''
 
''Структура работы:''
 
# находим все оценки студента по подписке.
 
# находим все оценки студента по подписке.
Строка 148: Строка 151:
 
  |Генерируется каждый раз при удалении записи из таблицы cpgrades.
 
  |Генерируется каждый раз при удалении записи из таблицы cpgrades.
 
  |}
 
  |}
 
[[Категория:Разработка]]
 
[[Категория:Плагины_storages]]
 

Текущая версия на 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.