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

Материал из DOF
Версия от 22:16, 13 января 2010; Ilya (обсуждение | вклад) (Подробный формат полей в таблице:: описано какие id из каких таблиц берутся, добавленны ссылки)
Перейти к: навигация, поиск
Плагин
Название 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 подписки.
  • $plid(int) - id контрольной точки.

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

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

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

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

get_grade_student()

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

Аргументы:

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

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

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

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

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

get_all_grade_student()

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

Аргументы:

  • $cpid(int) - id подписки.

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

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

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

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

Планы:

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

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