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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:: описано какие id из каких таблиц берутся, добавленны ссылки)
(Дополнительные методы:: описано какие id из каких таблиц надо брать, добавлены ссылки)
Строка 59: Строка 59:
  
 
''Аргументы:''  
 
''Аргументы:''  
* $cpid(int) - id подписки.
+
* $cpid(int) - id подписки в таблице [[Разработка:storages/cpassed | cpassed ]].
* $plid(int) - id контрольной точки.
+
* $plid(int) - id контрольной точки в таблице [[Разработка:storages/plans | plans ]].
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
 
* (object) запись из таблицы БД - последняя по дате оценка студента.
Строка 73: Строка 73:
  
 
''Аргументы:''  
 
''Аргументы:''  
* $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) запись из таблицы БД - последняя по дате оценка студента.
Строка 89: Строка 89:
  
 
''Аргументы:''  
 
''Аргументы:''  
* $cpid(int) - id подписки.
+
* $cpid(int) - id подписки на дисциплину в таблице [[Разработка:storages/cpassed | cpassed ]].
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
 
* (array) список оценок вместе c планом.  
 
* (array) список оценок вместе c планом.  
Строка 98: Строка 98:
 
#* создаем новый объек со свойствами:
 
#* создаем новый объек со свойствами:
 
#** grade - оценка студента
 
#** grade - оценка студента
#** plan - контрольная точка (информация из плана)
+
#** plan - контрольная точка (информация из учебного плана, таблица [[Разработка:storages/plans | plans ]])
 
#* записываем объект в массив
 
#* записываем объект в массив
 
# возвращаем созданный массив
 
# возвращаем созданный массив

Версия 22:22, 13 января 2010

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

Комментарии

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

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

save_grade_student()

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

Аргументы:

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

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

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

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

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

save_grade_students()

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

Аргументы:

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

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

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

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

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

get_grade_student_cpassed()

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

Аргументы:

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

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

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

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

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

get_grade_student()

Получает последнюю по дате оценку студента по 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(int) - id подписки на дисциплину в таблице cpassed .

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

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

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

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

Планы:

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

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