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

Материал из DOF
Перейти к: навигация, поиск
(Добавлено описание событий и проставлены категории)
м (Планы:)
Строка 270: Строка 270:
 
===Планы:===
 
===Планы:===
  
* метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)
+
* <s>метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)</s>
* метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)
+
* <s>метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)</s>
* метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)
+
* <s>метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)</s>
  
 
===События===
 
===События===

Версия 17:11, 16 февраля 2010

Плагин
Название cpassed
Тип storages


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

cpassed - изучаемые и пройденные курсы: отражает ход изучения учащимися выбранной учебной программы, итоговые отметки.

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

  • cstreamid - id учебного процесса в таблице cstreams , по которому велось обучение
  • programmsbcid - id подписки контракта в таблице contracts на программу обучения
  • programmitemid - id дисциплины в таблице programmitems
  • studentid - id слушателя по таблице persons
  • agroupid - id академической группы в таблице agroups . Не обязательное поле (для заполнения). По умолчанию NULL. При зачислении и отчислении из группы изменяется его значение автоматически. При отчислении из группы поле становится равным нулю (0). При индивидуальном обучении - NULL. На основании этого принимается решение подписке/отписке на предмет.
  • grade (итоговая отметка по курсу)
  • gradelevel - уровень оценки (оценка не идет в кондуит, дисциплина, курсовая работа, практика, междисциплинарный экзамин, дипломная работа). Берется из programmitems.
  • credit - количество кредитов, полученное за прохождение дисциплины
  • notice - текстовое пояснение об источнике оценки при перезачете
  • repeatid - id предыдущей подписки на дисциплину, если обучение выполняется повторно (пересдача или повторное обучение - при этом подписка, на которую выполняется ссылка должна иметь статус "пересдан"). Пересдачей может считаться только пересдача дисциплины, пройденной в рамках этой же подписки на учебную программу. Если было несколько пересдач данной дисциплины в данной учебной программе, то все они ссылаются на один и тот же исходный cpassedid.
  • typesync - тип синхронизации (выставление вручную, синхронизация с moodle)
  • mdlinstance - id задания в moodle, с которым выполнялась синхронизация
  • teacherid - id сотрудника по справочнику persons , вручную выставившего итоговую отметку
  • ageid - id периода в таблице ages по которому велось обучение
  • orderid - id приказа в таблице orders , согласно которому была выставлена оценка
  • status - список статусов указан в одноименном плагине рабочих процессов cpassed

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

get_cstream_students()

Получает список всех подписок студентов, приписаных к одному предмето-потоку.

Аргументы:

  • $csid(int) - id учебного потока в таблице cstreams .
  • $status(string) - статус подписки, по умолчанию - все(null).

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

  • (array) список подписок на учебный поток.
  • (bool) false если подписки не найдены.

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

  • формируем SQL-запрос и возвращаем список подписок:
    • если указывается статус - подписки с указанным статусом,
    • если статус не указывается или указывается как null - подписки с любым статусом.

get_cpasseds_student()

Получает список всех подписок для слушателя.

Аргументы:

  • $stid(int) - id студента в таблице persons
  • $status(string) - статус подписки, по умолчанию - идет(go).

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

  • (array) список подписок на учебный поток.
  • (bool) false если подписки не найдены.

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

  • формируем SQL-запрос и возвращаем список подписок:
    • если указывается статус - подписки с указанным статусом,
    • если статус указывается null - подписки с любым статусом,
    • если статус не указывается - подписки со статусом go.

get_cpassed_programm()

Получает список дисциплин, изученных слушателем в рамках учебной программы.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $prid(int) - id подписки на программу в таблице programmsbcs .
  • $status(string) - статус подписки, по умолчанию - завершен(complete).

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

  • (array) список подписок на учебный поток.
  • (bool) false если подписки не найдены.

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

  • формируем SQL-запрос и возвращаем список подписок:
    • если указывается статус - подписки с указанным статусом,
    • если статус указывается null - подписки с любым статусом,
    • если статус не указывается - подписки со статусом complete.


get_cpasseds_programmitem()

Получает подписки на дисциплину по id слушателя и id дисциплины.

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $deptid(int) - id дисциплины в таблице departments .
  • $status(string) - название статуса подписки, по умолчанию 'complete'
  • $levelgrade(string) - уровень оценки, по умолчанию - null.

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

  • (array) массив подписок на дисциплину.
  • (bool) false если подписка не найдена или слушатель ее еще не изучил.

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

  • формируем SQL-запрос и возвращаем список подписок:
    • если указывается уровень оценки - подписки с указанным уровнем оценки,
    • если уровень оценки не указывается или указывается как null - подписки с любым уровнем оценки.
    • если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
    • если статус указан как null или false, то вернутся подписки с любым статусом

update_total_grade()

Установливает/обновляет студенту итоговую оценку и комментарий для существующей подписки (в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). Если оценка равна или выше минимальной, подписка переводится в статус "успешно завершен".

Аргументы:

  • $id(int) - id подписки.
  • $grade(int) - итоговая оценка.
  • $comment(string) - коментарий

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

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

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

  1. создаем объект для вставки в таблицу БД.
  2. (не реализовано)меняем статус подписки.
  3. обновляем запись в БД.

insert_grade_reoffset()

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

Аргументы:

  • $stid(int) - id студента в таблице persons .
  • $prid(int) - id дисциплины в таблице departments .
  • $cpid(int) - id подписки на программу.
  • $grade(int) - итоговая оценка.
  • $comment(string) - коментарий.
  • $status(string) - статус - перезачет(reoffset) или пересдача(repeating).
  • $initialid(int) - id исходной подписки.

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

  • (int) id добавленной записи
  • (bool) false если добавление не удалось

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

  1. если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
  2. формируем новый объект в БД.
  3. вставляем сформированную запись в таблицу БД.

get_listing()

Получить список записей для вывода в таблицу

Аргументы:

  • $limitfrom - с какой записи начинать вывод
  • $limitnum - сколько записей выводить на одной странице
  • $conds - Объект, содержащий данные с условиями выборки, в формате поле_БД->значение по умолчанию NULL.
  • $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию false.

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

  • (array) массив записей из базы, int количество записей, соответствующих условиям (если $countonly=true), или false в случае ошибки

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

  1. составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
  2. Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
  3. Если ложно - то возвращаем список записей

get_students_without_agroup()

Получить список всех подписок, которые не принадлежат ни к одной группе.

Аргументы:

  • (нет)

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

  • bool|array - массив из записей таблицы cpassed или false, если ничего не нашлось

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

  • Возвращаются все записи таблицы cpassed, имеющие статус plan или active в которых поле agroupid равно:
    • NULL (null-значение)
    • "" (пустой строке)
    • 0

unsign_students_without_agroup()

Отписать всех учеников, не имеющих подписки ни на одну группу

Аргументы:

  • (нет)

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

  • (bool)
    • true - если изменение всех статусов прошло нормально или
    • false - если в процессе работы произошли ошибки


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

  • Для получения списка подписок, не имеющих связи с группой вызывается функция get_students_without_agroup()
    • Если таких подписок нет - возвращается true
    • Если подписки есть - то в цикле выставляем каждой записи статус "canceled" (через обращение к плагину workflow)

sign_student_on_cstream()

Подписывает одного ученика на один учебный поток.

Аргументы:

  • (int)$cstreamid - id учебного потока в таблице в таблице cstreams
  • (int)$programmsbcid - id подписки студента на программу в таблице в таблице programmsbcs

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

  • id записи если подписка произошла успешно (или уже существует),
  • false в случае ошибки


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

unsign_students_without_real_agroup()

Отменить подписки учеников, у которых группа, указанная в подписке на программу (programmsbcs) не совпадает с группой, указанной в таблице связей учебных потоков с группами (cstreamlinks)

Аргументы:

  • (object)$cstreamlink - объект из таблицы в таблице cstreamlinks

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

  • (bool)
    • true если все операции завершились успешно
    • false в случае возникновения ошибок

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

unsign_student_from_one_cstream()

Отписывает одного студента от одного потока

Аргументы:

  • (int) $studentid - id студента в таблице persons
  • (int) $cstreamid - id потока в таблице cstreams

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

  • (bool)
    • true если все операции завершились успешно
    • false в случае возникновения ошибок

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

unsign_student_from_all_cstreams()

Отписывает одного студента от всех потоков программы

Аргументы:

  • (int) $studentid - id студента в таблице persons
  • (int) $programmsbcid - id подписки студента на программу в таблице programmsbcs

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

  • (bool)
    • true если все операции завершились успешно
    • false в случае возникновения ошибок

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

unsign_students_from_all_cstreams()

Отписывает нескольких студентов от всех потоков программы

Аргументы:

  • (array) $students - массив (id=>подписки на программу студента=>id студента)

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

  • (bool)
    • true если все операции завершились успешно
    • false в случае возникновения ошибок

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

set_final_grade()

Выставляет итоговую оценку по предмету, переводя подписку в нужный статус, в зависимости от переданной оценки.

Аргументы:

  • $cpassedid - id подписки на дисциплину
  • $grade - выставляемая итоговая оценка


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

  • bool

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

Планы:

  • метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams)
  • метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams)
  • метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
Этот плагин не перехватывает никаких событий

Генерируемые события

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
storage cpassed insert Массив, содержащий в поле "new" объект с данными для вставки в таблицу.

Пример: array('new' => $dataobject)

Генерируется каждый раз при вставке новой записи в таблицу cpassed.
storage cpassed update Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.

Пример: array('old' => $dataobject_old, 'new' => $dataobject_new)

Генерируется каждый раз при обновлении записи в таблице cpassed.
storage cpassed delete Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы

Пример: array('old' => $dataobject)

Генерируется каждый раз при удалении записи из таблицы cpassed.