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

Материал из DOF
Перейти к: навигация, поиск
(Таблица в базе данных)
(Дополнительные методы:)
Строка 26: Строка 26:
 
===Дополнительные методы:===
 
===Дополнительные методы:===
  
=====get_cstream_students()=====
+
===='''get_cstream_students($csid, $status = null)'''====
  
 
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
 
Получает список всех подписок студентов, приписаных к одному предмето-потоку.
  
''Аргументы:''  
+
''Аргументы:''
 
* $csid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 
* $csid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
* $status(string) - статус подписки, по умолчанию - все(null).
+
* $status(string) - статус подписки, по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
Строка 41: Строка 41:
 
** если статус не указывается или указывается как null - подписки с любым статусом.
 
** если статус не указывается или указывается как null - подписки с любым статусом.
  
=====get_cpasseds_student()=====
+
 
 +
===='''get_cstream_agroup($cstreamid, $agroupid, $status = null)'''====
 +
 
 +
Получаеть список всех подписок студентов к указанному учебному потоку или только подписок с указанным статусом.
 +
 
 +
''Аргументы:''
 +
* $cstreamid(int) - id учебного потока в таблице [[Разработка:storages/cstreams | cstreams ]].
 +
* $agroupid(int) - id академической группы в таблице [[Разработка:storages/cstreams | agroups ]].
 +
* $status(string) - статус учебной дисциплины. по умолчанию - null.
 +
''Возвращаемые значения:''
 +
* (array) - массив записей из таблица.
 +
* (bool) - false, если записи не найдены.
 +
 
 +
 
 +
===='''get_cpasseds_student($stid, $status = 'active')'''====
  
 
Получает список всех подписок для слушателя.
 
Получает список всех подписок для слушателя.
Строка 47: Строка 61:
 
''Аргументы:''  
 
''Аргументы:''  
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]]
* $status(string) - статус подписки, по умолчанию - идет(go).
+
* $status(string) - статус подписки, по умолчанию - 'active'.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.  
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
 
** если указывается статус - подписки с указанным статусом,
 
** если указывается статус - подписки с указанным статусом,
 
** если статус указывается null - подписки с любым статусом,
 
** если статус указывается null - подписки с любым статусом,
** если статус не указывается - подписки со статусом go.
+
** если статус не указывается - подписки со статусом active.
 +
 
  
=====get_cpassed_programm()=====
+
===='''get_cpassed_programm($stid, $prid, $status = 'complete')'''====
  
 
Получает список дисциплин, изученных слушателем в рамках учебной программы.
 
Получает список дисциплин, изученных слушателем в рамках учебной программы.
Строка 64: Строка 79:
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 
* $prid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 
* $prid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
* $status(string) - статус подписки, по умолчанию - завершен(complete).
+
* $status(string) - статус подписки, по умолчанию - 'complete'.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (array) список подписок на учебный поток.  
+
* (array) - список подписок на учебный поток.  
* (bool) false если подписки не найдены.
+
* (bool) - false, если подписки не найдены.
 
''Структура работы:''
 
''Структура работы:''
 
* формируем SQL-запрос и возвращаем список подписок:
 
* формируем SQL-запрос и возвращаем список подписок:
Строка 75: Строка 90:
  
  
=====get_cpasseds_programmitem()=====
+
===='''get_cpasseds_programmitem($stid, $prid, $status = 'complete', $levelgrade = null)'''====
  
 
Получает подписки на дисциплину по id слушателя и id дисциплины.
 
Получает подписки на дисциплину по id слушателя и id дисциплины.
  
''Аргументы:''  
+
''Аргументы:''
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
* $deptid(int) - id дисциплины в таблице [[Разработка:storages/departments | departments ]].
+
* $prid(int) - id дисциплины в таблице [[Разработка:storages/programmitems | programmitems ]].
* $status(string) - название статуса подписки, по умолчанию 'complete'
+
* $status(string) - название статуса подписки, по умолчанию - 'complete'
 
* $levelgrade(string) - уровень оценки, по умолчанию - null.
 
* $levelgrade(string) - уровень оценки, по умолчанию - null.
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
Строка 93: Строка 108:
 
** если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
 
** если указывается статус - подписки с указанным статусом, если статус не указан, то возвращаются подписки со статусом 'complete'
 
** если статус указан как null или false, то вернутся подписки с любым статусом
 
** если статус указан как null или false, то вернутся подписки с любым статусом
 +
 +
 +
===='''get_cpassed_programm($stid, $prid, $status = 'complete')'''====
 +
 +
Получить список дисциплин, изученных слушателем в рамках учебной программы.
 +
 +
''Аргументы:''
 +
* $stid(int) - id студента в таблице [[Разработка:storages/persons | persons ]].
 +
* $prid(int) - id подписки на программу в таблице [[Разработка:storages/programmsbcs | programmsbcs ]].
 +
* $status(string) - статус подписки, по умолчанию - 'complete'.
 +
''Возвращаемые значения:''
 +
* array - список подписок на дисциплину.
 +
* bool - false, если дисциплины не найдены.
 +
  
 
=====update_total_grade()=====
 
=====update_total_grade()=====

Версия 20:24, 8 ноября 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, $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, то вернутся подписки с любым статусом


get_cpassed_programm($stid, $prid, $status = 'complete')

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

Аргументы:

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

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

  • array - список подписок на дисциплину.
  • bool - 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) 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 Массив, содержащий:
  • в поле 'oldagroup' id старой группы
  • в поле 'newagroup' id новой группы
  • в поле 'programmsbc' объект из таблицы programmsbcs

Пример: 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.