Разработка:storages/programmitems — различия между версиями
Alex (обсуждение | вклад) (→Подробный формат полей в таблице:) |
|||
(не показано 25 промежуточных версий 9 участников) | |||
Строка 3: | Строка 3: | ||
| type = storages | | type = storages | ||
}} | }} | ||
− | + | =Таблица в базе данных= | |
''programmitems'' - элементы учебной программы - учебные дисциплины/предметы. | ''programmitems'' - элементы учебной программы - учебные дисциплины/предметы. | ||
+ | Создание связного курса в Moodle происходит по событиям добавления/обновления дисциплины через плагин sync/mcourses. | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * programmid | + | * programmid - учебная программа в таблице [[Разработка:storages/programms | programms ]] |
* agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре. | * agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре. | ||
* courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls): | * courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls): | ||
Строка 15: | Строка 16: | ||
** 4 - категории (общественные, естественные, технические). Сама таблица coursecls пока не реализована, а поле зарезервировано на будущее. | ** 4 - категории (общественные, естественные, технические). Сама таблица coursecls пока не реализована, а поле зарезервировано на будущее. | ||
* name - название дисциплины (текстовое поле) | * name - название дисциплины (текстовое поле) | ||
− | * code - код дисциплины (текстовое поле, необязательное, при указании проверяется уникальность) | + | * code - код дисциплины (текстовое поле, необязательное, при указании проверяется уникальность). Если код не указан - то вместо него подставляется id записи. |
* mdlcourse - id курса в moodle | * mdlcourse - id курса в moodle | ||
* type - тип предмета: | * type - тип предмета: | ||
Строка 21: | Строка 22: | ||
** ''recommended'' - рекомендованный | ** ''recommended'' - рекомендованный | ||
** ''free'' - по выбору | ** ''free'' - по выбору | ||
− | * required - обязательный курс (0/1) | + | * required - обязательный курс (0/1) На основании этого поля ориентируемся, нужно ли обязательно подписывать или нет, а предыдущий больше информационный. Например, даже обязательный курс, который планируется разделить на подгруппы может не требовать автоматической подписки. |
− | * maxcredit - максимальное количество | + | * maxcredit - зачетные единицы трудоемкости (максимальное количество кредитов за курс, ЗЕТ) |
* maxduration - максимальная продолжительность курса от начальной подписки (в секундах). Если не установлено - продолжительность неограничена. Учебные потоки всегда завершается автоматически с закрытием учебного периода, к которому они относятся. | * maxduration - максимальная продолжительность курса от начальной подписки (в секундах). Если не установлено - продолжительность неограничена. Учебные потоки всегда завершается автоматически с закрытием учебного периода, к которому они относятся. | ||
− | * hours - | + | * hours - часов всего |
− | * hourstheory - часов | + | * hourstheory - часов лекций (Лек) |
− | * hourspractice - часов практики | + | * hourspractice - часов практики (Пр) |
* eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, если не указано, учебные процессы наследуют из ages. | * eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, если не указано, учебные процессы наследуют из ages. | ||
* instrlevelid - id уровня компоненты - | * instrlevelid - id уровня компоненты - | ||
Строка 40: | Строка 41: | ||
** ''finalexam'' - междисциплинарный экзамен | ** ''finalexam'' - междисциплинарный экзамен | ||
** ''diplom'' - дипломная работа | ** ''diplom'' - дипломная работа | ||
− | * scale - диапазон или перечисленные через запятую возможной итоговой оценки, пустая строка если оценка не предусмотрена | + | * scale - диапазон или перечисленные через запятую возможной итоговой оценки, пустая строка если оценка не предусмотрена. Оценка может быть и дробной. Диапазон задается двумя числами через дефис: худшая_оценка_-_лучшая_оценка_. Например 5-1. 5 - самый плохой балл. 1 - самый лучший. Если задается не диапазон, а интервал, то оценки перечисляются через запятую: 5, 4.5, 4, 3.5, 3, 2.5, 2, 1.5, 1. |
* mingrade - минимальная (для диапазона) или начальная слева-направа начиная с единицы (для перечисления) оценка, при которой курс считается завершенным. Если не указано, курс считается завершенным при выставлении любой оценки. | * mingrade - минимальная (для диапазона) или начальная слева-направа начиная с единицы (для перечисления) оценка, при которой курс считается завершенным. Если не указано, курс считается завершенным при выставлении любой оценки. | ||
* sname - название в источнике/стандарте | * sname - название в источнике/стандарте | ||
* scode - код в источнике/стандарте | * scode - код в источнике/стандарте | ||
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmitems | programmitems ]] | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmitems | programmitems ]] | ||
− | * departmentid - структурное подразделение, ответственное за реализацию дисциплины | + | * departmentid - структурное подразделение в таблице [[Разработка:storages/departments | departments ]], ответственное за реализацию дисциплины |
* about - описание дисциплины | * about - описание дисциплины | ||
* notice - заметка о дисциплины для внутреннего пользования | * notice - заметка о дисциплины для внутреннего пользования | ||
* controltypeid - тип итогового контроля по данному курсу | * controltypeid - тип итогового контроля по данному курсу | ||
+ | * hoursweek - часов в неделю | ||
+ | * explanatory - пояснительная записка | ||
+ | * gradesyncenabled - разрешать синхронизацию оценок для данной дисциплины | ||
+ | * incjournwithoutgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов не имеющих оценки | ||
+ | * incjournwithunsatisfgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов имеющих неудовлетворительные оценки | ||
+ | * altgradeitem - id из grades_items (если не указано, то при синхронизации оценок берется оценка из итоговой оценки курса, который указан в mdlcourse) | ||
+ | * metasyncon - включена ли синхронизация с метадисциплиной | ||
+ | * metaprogrammitemid - id метадисциплины для синхронизации | ||
+ | * billingtext - цена дисциплины | ||
+ | * billingrules - | ||
+ | * salfactor - поправочный зарплатный коэффициент | ||
+ | * hourslab - часов лабораторных (Лаб) | ||
+ | * hoursind - часов самостоятельной работы слушателя (СРС) | ||
+ | * hourscontrol - часов контроля (Контроль) | ||
+ | * autohours (0/1) - "Автоматически расчитывать количества Часов всего" (галочка рядом с полем "Часов всего"). Если установлена, при сохранении, в поле hours записывается сумма: hourstheory+hourslab+hourspractice+hoursind+hourscontrol | ||
+ | * hoursclassroom - часов аудиторных - поле отображается, но не редактируется. При сохранении автоматически вычисляется как сумма: hourstheory+hourslab+hourspractice | ||
+ | * verificationrequested - запрошено согласование мастер-курса (ожидание проверки) | ||
+ | * coursetemplateversion - версия шаблона курса, соответствующая имени файла с резервной копией | ||
+ | * courselinktype - тип связи с курсом moodle (прямая подписка или клонирование) | ||
− | + | =Дополнительные методы:= | |
− | |||
− | Ищет дисциплины по | + | |
+ | ===='''get_pitem_by_code($code)'''==== | ||
+ | |||
+ | Ищет дисциплины по коду дисциплины. | ||
''Аргументы:'' | ''Аргументы:'' | ||
Строка 61: | Строка 83: | ||
* (bool) false если дисциплина не найдена. | * (bool) false если дисциплина не найдена. | ||
− | ==== | + | ===='''get_pitems_list($programmid, $agenum=false, $status = null)'''==== |
Ищет список дисциплин, относящихся к учебной программе и учебному периоду. | Ищет список дисциплин, относящихся к учебной программе и учебному периоду. | ||
''Аргументы:'' | ''Аргументы:'' | ||
− | * | + | * (int) $programmid - id учебной программы из таблицы [[Разработка:storages/programms|programms]]. |
− | * | + | * (int) $agenum - порядковый номер периода или false, обозначающий получение дисциплин отсортированных в порядке возрастания периодав и по названию внутри них, по умолчанию false |
+ | * (str) $status - статус, по умолчанию null | ||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* (array) список дисциплин. | * (array) список дисциплин. | ||
* (bool) false если дисциплины не найдены. | * (bool) false если дисциплины не найдены. | ||
''Структура работы:'' | ''Структура работы:'' | ||
− | |||
По SQL-запросу находим список дисциплин и возвращаем результат. | По SQL-запросу находим список дисциплин и возвращаем результат. | ||
− | ==== | + | ===='''get_maxagenum($programmid)'''==== |
Получить количество периодов для данной учебной программы | Получить количество периодов для данной учебной программы | ||
Строка 81: | Строка 103: | ||
''Аргументы:'' | ''Аргументы:'' | ||
* $programmid - id учебной программы из таблицы [[Разработка:storages/programms|programms]]. | * $programmid - id учебной программы из таблицы [[Разработка:storages/programms|programms]]. | ||
− | |||
''Возвращаемые значения:'' | ''Возвращаемые значения:'' | ||
* false - если не нашлось не одной записи | * false - если не нашлось не одной записи | ||
* 0 - если нашлись только записи с agenum=0, то есть необязательные | * 0 - если нашлись только записи с agenum=0, то есть необязательные | ||
* в остальных случаях возвращается целое число - максимальное кол-во дисциплин в данном периоде | * в остальных случаях возвращается целое число - максимальное кол-во дисциплин в данном периоде | ||
+ | ''Структура работы:'' | ||
+ | По sql-запросу производится поиск максимального значения agenum среди записей с выбранных programmid. | ||
+ | |||
+ | ===='''get_gradelevels()'''==== | ||
− | + | Возвращает список всех возможных уровней оценки | |
+ | |||
+ | ''Возвращаемые значения:'' | ||
+ | * array | ||
+ | |||
+ | ===='''get_gradelevel_name($value)'''==== | ||
+ | |||
+ | Возвращает название уровня оценки по его обозначению | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (str) $value обозначение уровня оценки в БД | ||
+ | ''Возвращаемые значения:'' | ||
+ | * string | ||
+ | |||
+ | ===='''get_types()'''==== | ||
+ | |||
+ | Возвращает все возможные типы дисциплины | ||
+ | |||
+ | ''Возвращаемые значения:'' | ||
+ | * array | ||
+ | |||
+ | ===='''get_type_name($value)'''==== | ||
+ | |||
+ | Возвращает название типа по его идентификатору в базе | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (str) $value | ||
+ | ''Возвращаемые значения:'' | ||
+ | * string | ||
+ | |||
+ | ===='''is_positive_grade($programmitemid, $grade)'''==== | ||
+ | |||
+ | Определяет является ли переданная оценка положительной(достаточной, для продолжения обучения) | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (int) $programmitemid - id предмета, по которому выставляется итоговая оценка | ||
+ | * (str) $grade - выставляемая оценка | ||
+ | ''Возвращаемые значения:'' | ||
+ | * bool | ||
+ | |||
+ | ===='''analyze_grade_scale($pitem, $grade)'''==== | ||
+ | |||
+ | Определяет является ли переданная оценка допустимой для шкалы текущего предмета | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (obj) $pitem - объект из таблицы [[Разработка:storages/programmitems | programmitems]] | ||
+ | * (str) $grade - выставляемая оценка | ||
+ | ''Возвращаемые значения:'' | ||
+ | * bool | ||
+ | |||
+ | ===='''is_grade_valid($id, $grade, $scale=null)'''==== | ||
+ | |||
+ | Определяет допустима ли переданная оценка для данной дисциплины | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (int) $id - id предмета в таблице [[Разработка:storages/programmitems | programmitems]] | ||
+ | * (str) $grade - выставляемая оценка | ||
+ | * (str) $scale - шкала оценок, если она указывается вручную, по умолчанию null | ||
+ | ''Возвращаемые значения:'' | ||
+ | * bool | ||
+ | |||
+ | ===='''set_status_deleted($id)'''==== | ||
+ | |||
+ | Переводит дисциплину в статус "удален" | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (int) $id - id дисциплины | ||
+ | ''Возвращаемые значения:'' | ||
+ | * bool (true - если поток удачно завершен и false в остальных случаях) | ||
+ | |||
+ | ===='''get_hours_sum($programmitemids)'''==== | ||
+ | |||
+ | Получить суммарное количество часов и ЗЕТ по нескольким предметам | ||
+ | |||
+ | ''Аргументы:'' | ||
+ | * (array) $programmitemids - массив id из таблицы programmitems | ||
+ | * (int) $id - id дисциплины | ||
+ | ''Возвращаемые значения:'' | ||
+ | * (bool) - false в случае ошибки | ||
+ | * (object) - или объект с полями: | ||
+ | ** ->maxcredit | ||
+ | ** ->hours | ||
+ | ** ->hourstheory | ||
+ | ** ->hourspractice | ||
+ | ** ->hoursweek | ||
+ | ** ->hourslab | ||
+ | ** ->hoursind | ||
+ | ** ->hourscontrol | ||
+ | ** ->hoursclassroom | ||
===Планы:=== | ===Планы:=== | ||
+ | |||
+ | |||
+ | =Права= | ||
+ | {| border="1" | ||
+ | |+ Таблица прав, объявленных данным плагином | ||
+ | ! Код права | ||
+ | ! Описание | ||
+ | |- | ||
+ | |view | ||
+ | | | ||
+ | |- | ||
+ | |edit | ||
+ | | | ||
+ | |- | ||
+ | |create | ||
+ | | | ||
+ | |- | ||
+ | |delete | ||
+ | | | ||
+ | |- | ||
+ | |use | ||
+ | | | ||
+ | |- | ||
+ | |edit:mdlcourse | ||
+ | | | ||
+ | |- | ||
+ | |view/meta | ||
+ | | | ||
+ | |- | ||
+ | |edit/meta | ||
+ | | | ||
+ | |- | ||
+ | |create/meta | ||
+ | | | ||
+ | |- | ||
+ | |delete/meta | ||
+ | | | ||
+ | |- | ||
+ | |use/meta | ||
+ | | | ||
+ | |- | ||
+ | |edit:verificationrequested | ||
+ | |Отправлять мастер-курсы на проверку | ||
+ | |- | ||
+ | |benotified:edit:coursetemplateversion | ||
+ | |Получать уведомления о результатах проверки мастер-курса | ||
+ | |- | ||
+ | |edit:coursetemplateversion | ||
+ | |Согласовывать (одобрять/отклонять) версию мастер-курса | ||
+ | |- | ||
+ | |benotified:edit:verificationrequested | ||
+ | |Получать уведомления о новых запросах на проверку мастер-курса | ||
+ | |- | ||
+ | |view:mastercourse | ||
+ | |Видеть ссылку на мастер-курс | ||
+ | |} | ||
+ | =События= | ||
+ | В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином. | ||
+ | ====Перехватываемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые перехватывает этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |colspan=5 align=center | ''Этот плагин не перехватывает никаких событий'' | ||
+ | |} | ||
+ | |||
+ | ====Генерируемые события==== | ||
+ | {| border="1" | ||
+ | |+ Таблица событий, которые генерирует этот плагин | ||
+ | ! Тип плагина | ||
+ | ! Код плагина | ||
+ | ! Код события | ||
+ | ! Доп. данные | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |storage | ||
+ | |programmitems | ||
+ | |insert | ||
+ | |Массив, содержащий в поле "new" объект с данными для вставки в таблицу. | ||
+ | ''Пример:'' array('new' => $dataobject) | ||
+ | |Генерируется каждый раз при вставке новой записи в таблицу programmitems. | ||
+ | |- | ||
+ | |storage | ||
+ | |programmitems | ||
+ | |update | ||
+ | |Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи. | ||
+ | ''Пример:'' array('old' => $dataobject_old, 'new' => $dataobject_new) | ||
+ | |Генерируется каждый раз при обновлении записи в таблице programmitems. | ||
+ | |- | ||
+ | |storage | ||
+ | |programmitems | ||
+ | |delete | ||
+ | |Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы | ||
+ | ''Пример:'' array('old' => $dataobject) | ||
+ | |Генерируется каждый раз при удалении записи из таблицы programmitems. | ||
+ | |} | ||
+ | |||
+ | =Задания= | ||
+ | |||
+ | {| border="1" | ||
+ | |+ Таблица заданий, которые выполняет этот плагин | ||
+ | ! Код задания | ||
+ | ! Дополнительный параметр | ||
+ | ! Пояснение | ||
+ | |- | ||
+ | |change_mcourse_in_programmitem | ||
+ | |Обязателен. Указывается id дисциплины. В mixedvar необходим параметр mdlcourse. | ||
+ | |'''Только для внутреннего использования системой'''. Находит все активные подписки на дисциплины в указанной дисциплине, после чего каждую из них приостанавливает. Меняет курс Moodle в дисциплине. Возобновляет приостановленные подписки. Посылается из формы смены курса Moodle на странице просмотра дисциплины. | ||
+ | |} | ||
+ | |||
+ | [[Категория:Плагины обработки todo | storages/programmitems]] | ||
+ | |||
+ | |||
+ | =Периодические задания= | ||
+ | {| border="1" | ||
+ | |+ Таблица периодических заданий, которые выполняет этот плагин | ||
+ | ! Метод, выполняющий периодическое задание | ||
+ | ! Параметры | ||
+ | ! Пояснение | ||
+ | ! Режим нагрузки | ||
+ | |- | ||
+ | |check_deleted_courses | ||
+ | |Без параметров | ||
+ | |Поиск дисциплин с удаленным курсами, отвязка удаленных курсов от дисциплин | ||
+ | |loan=2 | ||
+ | |} |
Текущая версия на 11:40, 2 марта 2018
Плагин | |
Название | programmitems |
Тип | storages |
Содержание
- 1 Таблица в базе данных
- 2 Дополнительные методы:
- 2.1 get_pitem_by_code($code)
- 2.2 get_pitems_list($programmid, $agenum=false, $status = null)
- 2.3 get_maxagenum($programmid)
- 2.4 get_gradelevels()
- 2.5 get_gradelevel_name($value)
- 2.6 get_types()
- 2.7 get_type_name($value)
- 2.8 is_positive_grade($programmitemid, $grade)
- 2.9 analyze_grade_scale($pitem, $grade)
- 2.10 is_grade_valid($id, $grade, $scale=null)
- 2.11 set_status_deleted($id)
- 2.12 get_hours_sum($programmitemids)
- 2.13 Планы:
- 3 Права
- 4 События
- 5 Задания
- 6 Периодические задания
Таблица в базе данных
programmitems - элементы учебной программы - учебные дисциплины/предметы. Создание связного курса в Moodle происходит по событиям добавления/обновления дисциплины через плагин sync/mcourses.
Подробный формат полей в таблице:
- programmid - учебная программа в таблице programms
- agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре.
- courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls):
- 1 - одинаковые дисциплины изучаемые в составе различных учебных программ,
- 2 - разные ступени изучения одной дисциплины,
- 3 - дисциплины, относящиеся к одной науке,
- 4 - категории (общественные, естественные, технические). Сама таблица coursecls пока не реализована, а поле зарезервировано на будущее.
- name - название дисциплины (текстовое поле)
- code - код дисциплины (текстовое поле, необязательное, при указании проверяется уникальность). Если код не указан - то вместо него подставляется id записи.
- mdlcourse - id курса в moodle
- type - тип предмета:
- required- обязательный
- recommended - рекомендованный
- free - по выбору
- required - обязательный курс (0/1) На основании этого поля ориентируемся, нужно ли обязательно подписывать или нет, а предыдущий больше информационный. Например, даже обязательный курс, который планируется разделить на подгруппы может не требовать автоматической подписки.
- maxcredit - зачетные единицы трудоемкости (максимальное количество кредитов за курс, ЗЕТ)
- maxduration - максимальная продолжительность курса от начальной подписки (в секундах). Если не установлено - продолжительность неограничена. Учебные потоки всегда завершается автоматически с закрытием учебного периода, к которому они относятся.
- hours - часов всего
- hourstheory - часов лекций (Лек)
- hourspractice - часов практики (Пр)
- eduweeks - количество учебных недель/циклов (каждая соответствует одному циклу в расписании) продолжительности курса, если не указано, учебные процессы наследуют из ages.
- instrlevelid - id уровня компоненты -
- 1 - федеральная,
- 2 - региональная,
- 3 - учебного заведения,
- 4 - кафедры
- gradelevel - уровень оценки
- notused - оценка не идет в кондуит
- discipline - дисциплина
- coursework - курсовая работа
- practice - практика
- finalexam - междисциплинарный экзамен
- diplom - дипломная работа
- scale - диапазон или перечисленные через запятую возможной итоговой оценки, пустая строка если оценка не предусмотрена. Оценка может быть и дробной. Диапазон задается двумя числами через дефис: худшая_оценка_-_лучшая_оценка_. Например 5-1. 5 - самый плохой балл. 1 - самый лучший. Если задается не диапазон, а интервал, то оценки перечисляются через запятую: 5, 4.5, 4, 3.5, 3, 2.5, 2, 1.5, 1.
- mingrade - минимальная (для диапазона) или начальная слева-направа начиная с единицы (для перечисления) оценка, при которой курс считается завершенным. Если не указано, курс считается завершенным при выставлении любой оценки.
- sname - название в источнике/стандарте
- scode - код в источнике/стандарте
- status - список статусов указан в одноименном плагине рабочих процессов programmitems
- departmentid - структурное подразделение в таблице departments , ответственное за реализацию дисциплины
- about - описание дисциплины
- notice - заметка о дисциплины для внутреннего пользования
- controltypeid - тип итогового контроля по данному курсу
- hoursweek - часов в неделю
- explanatory - пояснительная записка
- gradesyncenabled - разрешать синхронизацию оценок для данной дисциплины
- incjournwithoutgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов не имеющих оценки
- incjournwithunsatisfgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов имеющих неудовлетворительные оценки
- altgradeitem - id из grades_items (если не указано, то при синхронизации оценок берется оценка из итоговой оценки курса, который указан в mdlcourse)
- metasyncon - включена ли синхронизация с метадисциплиной
- metaprogrammitemid - id метадисциплины для синхронизации
- billingtext - цена дисциплины
- billingrules -
- salfactor - поправочный зарплатный коэффициент
- hourslab - часов лабораторных (Лаб)
- hoursind - часов самостоятельной работы слушателя (СРС)
- hourscontrol - часов контроля (Контроль)
- autohours (0/1) - "Автоматически расчитывать количества Часов всего" (галочка рядом с полем "Часов всего"). Если установлена, при сохранении, в поле hours записывается сумма: hourstheory+hourslab+hourspractice+hoursind+hourscontrol
- hoursclassroom - часов аудиторных - поле отображается, но не редактируется. При сохранении автоматически вычисляется как сумма: hourstheory+hourslab+hourspractice
- verificationrequested - запрошено согласование мастер-курса (ожидание проверки)
- coursetemplateversion - версия шаблона курса, соответствующая имени файла с резервной копией
- courselinktype - тип связи с курсом moodle (прямая подписка или клонирование)
Дополнительные методы:
get_pitem_by_code($code)
Ищет дисциплины по коду дисциплины.
Аргументы:
- $code(string) - код дисциплины.
Возвращаемые значения:
- (object) объект дисциплины.
- (bool) false если дисциплина не найдена.
get_pitems_list($programmid, $agenum=false, $status = null)
Ищет список дисциплин, относящихся к учебной программе и учебному периоду.
Аргументы:
- (int) $programmid - id учебной программы из таблицы programms.
- (int) $agenum - порядковый номер периода или false, обозначающий получение дисциплин отсортированных в порядке возрастания периодав и по названию внутри них, по умолчанию false
- (str) $status - статус, по умолчанию null
Возвращаемые значения:
- (array) список дисциплин.
- (bool) false если дисциплины не найдены.
Структура работы: По SQL-запросу находим список дисциплин и возвращаем результат.
get_maxagenum($programmid)
Получить количество периодов для данной учебной программы
Аргументы:
- $programmid - id учебной программы из таблицы programms.
Возвращаемые значения:
- false - если не нашлось не одной записи
- 0 - если нашлись только записи с agenum=0, то есть необязательные
- в остальных случаях возвращается целое число - максимальное кол-во дисциплин в данном периоде
Структура работы: По sql-запросу производится поиск максимального значения agenum среди записей с выбранных programmid.
get_gradelevels()
Возвращает список всех возможных уровней оценки
Возвращаемые значения:
- array
get_gradelevel_name($value)
Возвращает название уровня оценки по его обозначению
Аргументы:
- (str) $value обозначение уровня оценки в БД
Возвращаемые значения:
- string
get_types()
Возвращает все возможные типы дисциплины
Возвращаемые значения:
- array
get_type_name($value)
Возвращает название типа по его идентификатору в базе
Аргументы:
- (str) $value
Возвращаемые значения:
- string
is_positive_grade($programmitemid, $grade)
Определяет является ли переданная оценка положительной(достаточной, для продолжения обучения)
Аргументы:
- (int) $programmitemid - id предмета, по которому выставляется итоговая оценка
- (str) $grade - выставляемая оценка
Возвращаемые значения:
- bool
analyze_grade_scale($pitem, $grade)
Определяет является ли переданная оценка допустимой для шкалы текущего предмета
Аргументы:
- (obj) $pitem - объект из таблицы programmitems
- (str) $grade - выставляемая оценка
Возвращаемые значения:
- bool
is_grade_valid($id, $grade, $scale=null)
Определяет допустима ли переданная оценка для данной дисциплины
Аргументы:
- (int) $id - id предмета в таблице programmitems
- (str) $grade - выставляемая оценка
- (str) $scale - шкала оценок, если она указывается вручную, по умолчанию null
Возвращаемые значения:
- bool
set_status_deleted($id)
Переводит дисциплину в статус "удален"
Аргументы:
- (int) $id - id дисциплины
Возвращаемые значения:
- bool (true - если поток удачно завершен и false в остальных случаях)
get_hours_sum($programmitemids)
Получить суммарное количество часов и ЗЕТ по нескольким предметам
Аргументы:
- (array) $programmitemids - массив id из таблицы programmitems
- (int) $id - id дисциплины
Возвращаемые значения:
- (bool) - false в случае ошибки
- (object) - или объект с полями:
- ->maxcredit
- ->hours
- ->hourstheory
- ->hourspractice
- ->hoursweek
- ->hourslab
- ->hoursind
- ->hourscontrol
- ->hoursclassroom
Планы:
Права
Код права | Описание |
---|---|
view | |
edit | |
create | |
delete | |
use | |
edit:mdlcourse | |
view/meta | |
edit/meta | |
create/meta | |
delete/meta | |
use/meta | |
edit:verificationrequested | Отправлять мастер-курсы на проверку |
benotified:edit:coursetemplateversion | Получать уведомления о результатах проверки мастер-курса |
edit:coursetemplateversion | Согласовывать (одобрять/отклонять) версию мастер-курса |
benotified:edit:verificationrequested | Получать уведомления о новых запросах на проверку мастер-курса |
view:mastercourse | Видеть ссылку на мастер-курс |
События
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
Перехватываемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
Этот плагин не перехватывает никаких событий |
Генерируемые события
Тип плагина | Код плагина | Код события | Доп. данные | Пояснение |
---|---|---|---|---|
storage | programmitems | insert | Массив, содержащий в поле "new" объект с данными для вставки в таблицу.
Пример: array('new' => $dataobject) |
Генерируется каждый раз при вставке новой записи в таблицу programmitems. |
storage | programmitems | update | Массив, содержащий в поле "new" обновленный объект, и в поле "old" объект со старыми данными, до обновления записи.
Пример: array('old' => $dataobject_old, 'new' => $dataobject_new) |
Генерируется каждый раз при обновлении записи в таблице programmitems. |
storage | programmitems | delete | Массив, содержащий в поле "old" объект с данными, которые удаляются из таблицы
Пример: array('old' => $dataobject) |
Генерируется каждый раз при удалении записи из таблицы programmitems. |
Задания
Код задания | Дополнительный параметр | Пояснение |
---|---|---|
change_mcourse_in_programmitem | Обязателен. Указывается id дисциплины. В mixedvar необходим параметр mdlcourse. | Только для внутреннего использования системой. Находит все активные подписки на дисциплины в указанной дисциплине, после чего каждую из них приостанавливает. Меняет курс Moodle в дисциплине. Возобновляет приостановленные подписки. Посылается из формы смены курса Moodle на странице просмотра дисциплины. |
Периодические задания
Метод, выполняющий периодическое задание | Параметры | Пояснение | Режим нагрузки |
---|---|---|---|
check_deleted_courses | Без параметров | Поиск дисциплин с удаленным курсами, отвязка удаленных курсов от дисциплин | loan=2 |