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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:)
Строка 51: Строка 51:
 
* hoursweek - часов в неделю
 
* hoursweek - часов в неделю
 
* explanatory - пояснительная записка
 
* explanatory - пояснительная записка
 +
* gradesyncenabled - разрешать синхронизацию оценок для данной дисциплины
 +
* incjournwithoutgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов не имеющих оценки
 +
* incjournwithunsatisfgrade - при синхронизации оценок вносить в ведомость на момент ее заполнения студентов имеющих неудовлетворительные оценки
 +
* altgradeitem - id из grades_items (если не указано, то при синхронизации оценок берется оценка из итоговой оценки курса, который указан в mdlcourse)
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===

Версия 12:03, 26 апреля 2011

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


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

programmitems - элементы учебной программы - учебные дисциплины/предметы.

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

  • 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)

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

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 в остальных случаях)

Планы:

События

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

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

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

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

Таблица событий, которые генерирует этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
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.