Разработка:storages/programmitems — различия между версиями
Johnleft (обсуждение | вклад) м (→Подробный формат полей в таблице:: уточнено описание поля) |
Ilya (обсуждение | вклад) (→Подробный формат полей в таблице:: описано какие id из каких таблиц берутся, добавленны ссылки) |
||
Строка 7: | Строка 7: | ||
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
− | * programmid | + | * programmid - учебная программа в таблице [[Разработка:storages/programms | programms ]] |
* agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре. | * agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре. | ||
* courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls): | * courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls): | ||
Строка 45: | Строка 45: | ||
* scode - код в источнике/стандарте | * scode - код в источнике/стандарте | ||
* status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmitems | programmitems ]] | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/programmitems | programmitems ]] | ||
− | * departmentid - структурное подразделение, ответственное за реализацию дисциплины | + | * departmentid - структурное подразделение в таблице [[Разработка:storages/departments | departments ]], ответственное за реализацию дисциплины |
* about - описание дисциплины | * about - описание дисциплины | ||
* notice - заметка о дисциплины для внутреннего пользования | * notice - заметка о дисциплины для внутреннего пользования |
Версия 22:45, 13 января 2010
Плагин | |
Название | programmitems |
Тип | storages |
Содержание
Таблица в базе данных
programmitems - элементы учебной программы - учебные дисциплины/предметы.
Подробный формат полей в таблице:
- programmid - учебная программа в таблице programms
- agenum - номер учебного периода, от начала обучения по программе на который назначена дисциплина. Для необязательных дисциплин возможен 0, тогда студент может "взять" дисциплину в любом семестре.
- courseclsid - id по таблице coursecls (таблица пока не предусмотрена), предназначен для объединения однородных дисциплин. Однородность дисциплин может быть четырех уровней (записываются внутри таблицы coursecls):
- 1 - одинаковые дисциплины изучаемые в составе различных учебных программ,
- 2 - разные ступени изучения одной дисциплины,
- 3 - дисциплины, относящиеся к одной науке,
- 4 - категории (общественные, естественные, технические). Сама таблица coursecls пока не реализована, а поле зарезервировано на будущее.
- name - название дисциплины (текстовое поле)
- code - код дисциплины (текстовое поле, необязательное, при указании проверяется уникальность)
- 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 - тип итогового контроля по данному курсу
Дополнительные методы:
get_pitem_by_code()
Ищет дисциплины по коду дисциплины.
Аргументы:
- $code(string) - код дисциплины.
Возвращаемые значения:
- (object) объект дисциплины.
- (bool) false если дисциплина не найдена.
get_pitems_list()
Ищет список дисциплин, относящихся к учебной программе и учебному периоду.
Аргументы:
- $programmid(int) - id учебной программы из таблицы programms.
- $ageid(int) - порядковый номер периода или false, обозначающий получение дисциплин отсортированных в порядке возрастания периодав и по названию внутри них.
Возвращаемые значения:
- (array) список дисциплин.
- (bool) false если дисциплины не найдены.
Структура работы:
По SQL-запросу находим список дисциплин и возвращаем результат.
get_maxagenum()
Получить количество периодов для данной учебной программы
Аргументы:
- $programmid - id учебной программы из таблицы programms.
Возвращаемые значения:
- false - если не нашлось не одной записи
- 0 - если нашлись только записи с agenum=0, то есть необязательные
- в остальных случаях возвращается целое число - максимальное кол-во дисциплин в данном периоде
По sql-запросу производится поиск максимального значения agenum среди записей с выбранных programmid.