Разработка:storages/cpassed — различия между версиями
(→Дополнительные методы:) |
(→Дополнительные методы:) |
||
Строка 110: | Строка 110: | ||
− | ====''' | + | ===='''insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)'''==== |
− | + | Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования). | |
''Аргументы:'' | ''Аргументы:'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. | * $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. | ||
* $prid(int) - id дисциплины в таблице [[Разработка:storages/departments | departments ]]. | * $prid(int) - id дисциплины в таблице [[Разработка:storages/departments | departments ]]. | ||
− | * $cpid(int) - id подписки на программу. | + | * $cpid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]]. |
* $grade(int) - итоговая оценка. | * $grade(int) - итоговая оценка. | ||
* $comment(string) - коментарий. | * $comment(string) - коментарий. | ||
Строка 151: | Строка 123: | ||
* $initialid(int) - id исходной подписки. | * $initialid(int) - id исходной подписки. | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (int) id добавленной записи | + | * (int) id добавленной записи. |
− | * (bool) false если добавление не удалось | + | * (bool) false если добавление не удалось. |
''Структура работы:'' | ''Структура работы:'' | ||
# если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД. | # если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД. | ||
Строка 158: | Строка 130: | ||
# вставляем сформированную запись в таблицу БД. | # вставляем сформированную запись в таблицу БД. | ||
− | |||
− | + | ===='''get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)'''==== | |
+ | |||
+ | Получает список учебных потоков по заданным критериям. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * $limitfrom - с какой записи | + | * $limitfrom - начиная с какой записи просматривается фрагмент списка записей. |
− | * $limitnum - сколько записей | + | * $limitnum - сколько записей нужно извлечь из базы. |
− | * $conds - | + | * $conds - объект со списком свойств, по которым будет происходить поиск. |
− | * $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию false. | + | * $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false. |
− | |||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
− | * (array) массив записей из базы | + | * (array) - массив записей из базы. |
− | + | * (int) - количество записей, если $countonly=true. | |
+ | * (bool) - false, в случае ошибки. | ||
''Структура работы:'' | ''Структура работы:'' | ||
# составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing() | # составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing() | ||
# Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей | # Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей | ||
# Если ложно - то возвращаем список записей | # Если ложно - то возвращаем список записей | ||
+ | |||
+ | |||
+ | unsign_student_one_cpassed($studentid, $cstreamid) | ||
+ | |||
+ | Отписывает заданного студента от заданного учебного потока | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * $studentid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]. | ||
+ | * $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]]. | ||
+ | * (boоl) - true, в случае успеха и falsе, в остальных. | ||
+ | |||
=====get_students_without_agroup()===== | =====get_students_without_agroup()===== |
Версия 20:53, 8 ноября 2010
Плагин | |
Название | cpassed |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 get_cstream_students($csid, $status = null)
- 2.2 get_cstream_agroup($cstreamid, $agroupid, $status = null)
- 2.3 get_cpasseds_student($stid, $status = 'active')
- 2.4 get_cpassed_programm($stid, $prid, $status = 'complete')
- 2.5 get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)
- 2.6 insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)
- 2.7 get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
- 2.7.1 get_students_without_agroup()
- 2.7.2 unsign_students_without_agroup()
- 2.7.3 sign_student_on_cstream()
- 2.7.4 unsign_students_without_real_agroup()
- 2.7.5 unsign_student_from_one_cstream()
- 2.7.6 unsign_student_from_all_cstreams()
- 2.7.7 unsign_students_from_all_cstreams()
- 2.7.8 set_final_grade()
- 2.7.9 change_group()
- 2.7.10 syncronize_agroup_with_cstream()
- 2.7.11 unsign_agroups_from_cstream()
- 3 Планы:
- 4 События
Таблица в базе данных
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, $status = null)
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
Аргументы:
- $csid(int) - id учебного потока в таблице cstreams .
- $status(string) - статус подписки, по умолчанию - null.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус не указывается или указывается как null - подписки с любым статусом.
get_cstream_agroup($cstreamid, $agroupid, $status = null)
Получаеть список всех подписок студентов к указанному учебному потоку или только подписок с указанным статусом.
Аргументы:
- $cstreamid(int) - id учебного потока в таблице cstreams .
- $agroupid(int) - id академической группы в таблице agroups .
- $status(string) - статус учебной дисциплины. по умолчанию - null.
Возвращаемые значения:
- (array) - массив записей из таблица.
- (bool) - false, если записи не найдены.
get_cpasseds_student($stid, $status = 'active')
Получает список всех подписок для слушателя.
Аргументы:
- $stid(int) - id студента в таблице persons
- $status(string) - статус подписки, по умолчанию - 'active'.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом active.
get_cpassed_programm($stid, $prid, $status = 'complete')
Получает список дисциплин, изученных слушателем в рамках учебной программы.
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id подписки на программу в таблице programmsbcs .
- $status(string) - статус подписки, по умолчанию - 'complete'.
Возвращаемые значения:
- (array) - список подписок на учебный поток.
- (bool) - false, если подписки не найдены.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается статус - подписки с указанным статусом,
- если статус указывается null - подписки с любым статусом,
- если статус не указывается - подписки со статусом complete.
get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)
Получает подписки на дисциплину по id слушателя и id дисциплины.
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id дисциплины в таблице programmitems .
- $status(string) - название статуса подписки, по умолчанию - 'complete'
- $levelgrade(string) - уровень оценки, по умолчанию - null.
Возвращаемые значения:
- (array) массив подписок на дисциплину.
- (bool) false если подписка не найдена или слушатель ее еще не изучил.
Структура работы:
- формируем SQL-запрос и возвращаем список подписок:
- если указывается уровень оценки - подписки с указанным уровнем оценки,
- если уровень оценки не указывается или указывается как null - подписки с любым уровнем оценки.
- если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
- если статус указан как null или false, то вернутся подписки с любым статусом
insert_grade_reoffset($stid, $prid, $cpid, $grade, $status, $comment, $initialid)
Добавляет оценку в режиме "перезачета".(в перспективе, когда будет реализован справочник с историей изменения отметок - вызов функции протоколирования).
Аргументы:
- $stid(int) - id студента в таблице persons .
- $prid(int) - id дисциплины в таблице departments .
- $cpid(int) - id подписки на программу в таблице programmsbcs .
- $grade(int) - итоговая оценка.
- $comment(string) - коментарий.
- $status(string) - статус - перезачет(reoffset) или пересдача(repeating).
- $initialid(int) - id исходной подписки.
Возвращаемые значения:
- (int) id добавленной записи.
- (bool) false если добавление не удалось.
Структура работы:
- если дисиплина пересдается (статус = repeating), статус исходной подписки меняем на пересдан и обновляем запись в БД.
- формируем новый объект в БД.
- вставляем сформированную запись в таблицу БД.
get_listing($limitfrom, $limitnum, $conds=null, $countonly=false)
Получает список учебных потоков по заданным критериям.
Аргументы:
- $limitfrom - начиная с какой записи просматривается фрагмент списка записей.
- $limitnum - сколько записей нужно извлечь из базы.
- $conds - объект со списком свойств, по которым будет происходить поиск.
- $countonly - Если указано true, то функция вернет только количество записей, соответствующих переданным условиям. По умолчанию - false.
Возвращаемые значения:
- (array) - массив записей из базы.
- (int) - количество записей, если $countonly=true.
- (bool) - false, в случае ошибки.
Структура работы:
- составляем запрос по переданным параметрам при помощи собственной protected-функции get_select_listing()
- Проверяем условие $countonly. Если оно истинно - то возвращаем только количество записей
- Если ложно - то возвращаем список записей
unsign_student_one_cpassed($studentid, $cstreamid)
Отписывает заданного студента от заданного учебного потока
Аргументы:
- $studentid(int) - id студента в таблице persons .
- $cstreamid(int) - id учебного потока в таблице cstreams .
- (boоl) - true, в случае успеха и falsе, в остальных.
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()
Отписывает одного студента от одного потока
Аргументы:
Возвращаемые значения:
- (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) true - если все прошло успешно или false в случае ошибки
Структура работы:
change_group()
Синхронизирует ученика с потоками при смене группы
Аргументы:
- $oldagroupid - id старой группы студента
- $newagroupid - id новой группы студента
- $programmsbcid - id подписки на программу
Возвращаемые значения:
- (bool) true - если все прошло успешно или false в случае ошибки
syncronize_agroup_with_cstream()
Синхронизировать учебную группу с потоком, проверим и обновив все подписки
Аргументы:
- $cstreamlinkid - id записи в таблице cstreamlinks
Возвращаемые значения:
- (bool) true - если все прошло успешно или false в случае ошибки
unsign_agroups_from_cstream()
Удаление всех "лишних" подписок из потока, которые были записаны в составе группы, связи с которой сейчас нет
Аргументы:
- $cstreamid - id записи в таблице cstreams
Возвращаемые значения:
- (bool) true - если все прошло успешно или false в случае ошибки
Планы:
-
метод создает одному студенту подписку на все потоки программы (sign_student_on_all_cstreams) -
метод создает нескольким студентам подписку на все потоки программы (sign_agroup_on_all_cstreams) -
метод создает всем студентам группы подписку на все потоки рограммы (sign_all_agroups_on_all_cstreams)
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | programmsbcs | changeagroup | Массив, содержащий:
Пример: array('oldagroup' => $oldid, 'newagroup' => $newid, 'programmsbc' => $object) |
Обрабатывается событие изменения группы, вызывается функция change_group() |
storage | cstreamlinks | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
По этому событию выполняется синхронизация подписок группы при помощи функции syncronize_agroup_with_cstream() |
storage | cstreamlinks | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
По этому событию удаляются подписки при помощи функции unsign_agroups_from_cstream() |
storage | cstreams | changestatus | При изменении статуса учебного потока изменяет статус всех подписок на этот поток, через обращение к workflows/cpassed. |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
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. |