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

Материал из DOF
Перейти к: навигация, поиск
(Дополнительные методы:: Добавлены описания методов)
(Дополнительные методы:)
Строка 18: Строка 18:
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
* '''get_grade_student_cpassed'''($cpid, $plid) - получить оценку студента по id-подписки и id контрольной точки (возвращается последняя по дате оценка).
 
* '''get_all_grade_student'''($cpid) - получить все оценки (одного студента) по подписке на дисциплину вместе с информацией из плана. По id подписки на учебный поток находит все оценки студента и для каждой оценки создает объект со свойствами grade - оценка студента и plan - информация из плана. Возвращает массив этих самых объектов.
 
* '''get_grade_student'''($stid, $csid, $plid) - получить оценку студента по id студента, id предмето-класса (учебного потока) и id контрольной точки (возвращается последняя по дате оценка).
 
* '''save_grade_student'''($obj) - сохранить (добавить/обновить) отметку студента (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). Обновляет запись в базе данных если оценка с данной подпиской на учебный процесс и с данным планом из объекта уже существует и при этом является черновой(status=tmp) и записывает ее, если такой записи не обнаружено.
 
* '''save_grade_students'''($obj) - сохранить (добавить/обновить) отметки всех студентов. Входными данными является объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки. Перебирая данный массив создает обьект для сохранения в БД данных отдельно по каждому ученику и сохраняет успользуя предыдущую функцию.
 
  
====Планируются:====
+
'''save_grade_student()'''
 +
 
 +
Сохраняет отметку студента. (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования)
 +
 
 +
''Аргументы:''
 +
* $obj(object) - запись в таблицу БД.
 +
''Возвращаемые значения:''
 +
* (int) id вставленной записи, если запись вставляется.
 +
* (bool) true, если запись обновляется.
 +
* (bool) false, если операции не удались.
 +
''Структура работы:''
 +
# находим запись в таблице БД по данным из обьекта:
 +
#* если запись была найдена и ее статус при этом является черновым, мы ее обновляем и возвращаем результат.
 +
#* если не найдена или статус не черновой - запысываем в таблицу БД и возвращаем результат.
 +
 
 +
'''save_grade_students()'''
 +
 
 +
Cохраняет отметки всех студентов.
 +
 
 +
''Аргументы:''
 +
* $obj(object) - запись в таблицу БД (объект, в котором имеются свойства date(дата), planid(id плана), teacherid(id учителя) и grades - массив записей, где ключ - id персоны, значения - оценка, подписка на учибный процесс и статус оценки).
 +
''Возвращаемые значения:''
 +
* (bool) true, если все записи успешно обновильсь/вставились.
 +
* (bool) false во всех остальных случаях.
 +
''Структура работы:''
 +
# обновляем/вставляем все записи в БД.
 +
#* перебираем исходный массив из данных объекта.
 +
#* формируем объект для обновления/вставки в БД.
 +
#* обновляем/вставляем объект в таблицу БД.
 +
# возвращаем результат.
 +
 
 +
'''get_grade_student_cpassed()'''
 +
 
 +
Получает последнюю по дате оценку студента по id-подписки и id контрольной точки
 +
 
 +
''Аргументы:''
 +
* $cpid(int) - id подписки.
 +
* $plid(int) - id контрольной точки.
 +
''Возвращаемые значения:''
 +
* (object) запись из таблицы БД - последняя по дате оценка студента.
 +
* (bool) false если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# находим все оценки студента отсортированных по дате в порядке убывания.
 +
# возвращаем первую стоящюю в списке оценку.
 +
 
 +
'''get_grade_student()'''
 +
 
 +
Получает последнюю по дате оценку студента по id студента, id учебного потока и id контрольной точки
 +
 
 +
''Аргументы:''
 +
* $stid(int) - id студента.
 +
* $cpid(int) - id учебного потока.
 +
* $plid(int) - id контрольной точки.
 +
''Возвращаемые значения:''
 +
* (object) запись из таблицы БД - последняя по дате оценка студента.
 +
* (bool) false если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# по id учебного потока и id студента находим подписку студента на учебный поток.
 +
# по id подписка и id контрольной точки находим последнюю по дате оценку студента.
 +
# возвращаем результат.
 +
 
 +
'''get_all_grade_student()'''
 +
 
 +
Получает все оценки одного студента по подписке на дисциплину вместе с информацией из плана.
 +
 
 +
''Аргументы:''
 +
* $cpid(int) - id подписки.
 +
''Возвращаемые значения:''
 +
* (array) список оценок вместе c планом.
 +
* (bool) false если ни одной оценки не найдено.
 +
''Структура работы:''
 +
# находим все оценки студента по подписке.
 +
# создаем массив оценок вместе с информацией из плана.
 +
#* создаем новый объек со свойствами:
 +
#** grade - оценка студента
 +
#** plan - контрольная точка (информация из плана)
 +
#* записываем объект в массив
 +
# возвращаем созданный массив
 +
 
 +
===Планы:===
 +
====Дополнительные методы:====
 
* Получить историю изменения оценок по id подписки и id контрольной точки
 
* Получить историю изменения оценок по id подписки и id контрольной точки

Версия 15:13, 11 августа 2009

Таблица в базе данных

cpgrades - оценки по контрольным точкам внутри дисциплины. Контрольные точки могут быть как локальными (внутри учебной дисциплины), так и глобальными - на все учебное заведение (четверти в школе или промежуточные аттестации).

Подробный формат полей в таблице:

  • cpassedid - подписка на дисциплину (связь с personid студента осуществляется через id подписки)
  • planid - контрольная точка или тема в плане, за которую получена оценка
  • grade - полученная оценка
  • date - дата получения оценки
  • notice - комментарий преподавателя к отметке (виден студенту и родителям)
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
  • mdlinstance - id задания в moodle, с которым выполнялась синхронизация
  • orderid - id приказа, в соответствии с которым была выставлена эта оценка
  • 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 контрольной точки