Разработка:im/cstreams
Плагин | |
Название | cstreams |
Тип | im |
Содержание
Разработка:im/cstreams
Интерфейс создания и редактирования учебных потоков. Учебный поток это связка преподавателя, предмета, учебного периода и группы мудл. После создания потока здесь же можно создать привязку академических групп к потокам.
Просмотр потока
На этой странице можно просмотреть данные одного потока. Сюда происходит перенаправление после создания или изменения потока. Обязательный входной параметр - id потока - cstreamid.
С этой страницы можно перейти на страницу списка потоков или страницу создания привязок групп к созданному потоку.
Просмотр списка потоков
На этой странице можно просмотреть список всех потоков, список всех потоков одного подразделения, список всех потоков одного преподавателя, список всех потоков одной академической группы, одного статуса. Фильтрация происходит с помощью формы поиска по перечисленным параметрам. Необязательный входной параметр - id подразделения, id преподавателя, id академической группы. С этой страницы можно перейти на страницу создания нового потока, редактирования существующего потока, создания привязки академических групп к потоку (добавить значок привязки в колонку действий).
Создание/изменение потоков
Выводится форма редактирования потока. Форма содержит поля
- Учебный период - меню выбора учебных периодов из списка (ageid);
- Учебная дисциплина - меню выбора дисциплины из списка (programmitemid);
- Преподаватель - меню выбора преподавателя (из таблицы persons) (teacherid);
- Подразделение - меню выбора подразделения из списка (departmentid);
- группа moodle - статическое поле (mdlgroupid);
- Количество учебных недель - текстовое поле. По умолчанию информация берется из соответствующего поля programmitems. Если там нет - из соответствующего поля ages. Если там нет - пустое.
- Дата начала - статическое поле. Дата и время, когда учебный процесс был впервые переведен в состояние "идет обучение" по UTC (begindate).
- Дата окончания - статическое поле. Дата и время, когда учебный процесс был в последний раз выведен из состояния "идет обучения" по UTC (enddate)
- Статус - статическое поле. Текущий статус потока (status).
- Кнопки сохранить и отменить.
При нажатии кнопки отменить загружается страница списка классов. При нажатии на кнопку создать — введенные данные сохраняются в таблице. Со страницы можно перейти на страницу списка классов. На страницу передается внешний параметр - sctreamid. Если он не передан, неправильного типа или равен нулю - загружается форма создания нового потока. Если он передан, правильного типа и соответствует записи в бд, то загружается форма в которой по умолчанию выставлены значения выбранной записи. Если же передан id не существующего потока, то выдается сообщение об ошибке.
Создание привязки академической группы к потоку
В верхней части страницы выводится информация о потоке. Ниже представлена форма привязки группы к потоку.
Выводится таблица из трех колонок. В первой перечислены все группы, уже привязанные к потоку. Последняя строка первой колонки содержит меню выбора группы из списка. Эту группу надо будет привязать к потоку. В каждой строчке второй колонки содержится меню выбора из списка параметров привязки. Напротив привязанных групп в меню выбран соответствующий группе тип привязки. В третьей колонка называется "удалить" в каждой строке этой колонки размещается поле типа "галочка", выбора которой означает удаление привязки группы к потоку. Удаление или изменение типа привязки происходит после нажатия на кнопку "сохранить", которая располагается над последней строкой таблицы. В этой строке нет поля удалить.Вместо него кнопка "создать", после нажатия на которую создается привязка выбранной группы к потоку. В меню выбора группы по умолчанию ничего не выбрано.
С этой страницы можно перейти на страницу списка потоков или страницу редактирования потока, к которому осуществляется привязка.
Создание учебных потоков по группе и периоду
Вход на страницу возможен только если пользователь имеет право создавать потоки. На странице располагается форма со следующими полями:
- Класс
- Период
- Подразделение
- Начало обучения
Параметры "класс" и "период" могут быть как выставлены вручную, так и переданы извне. Если они передаются снаружи по ссылке, то эти поля блокируются (становятся нередактируемыми). Передаются либо сразу два параметра, либо ни одного.
Если класс и период переданы извне, то поле "подразделение" по умолчанию содержит подразделение группы, для которой создаются потоки, но его можно изменить.
После нажатия на кнопку "создать потоки" начинается создание потоков с выбранными параметрами. Если все потоки создались успешно - то пользователь переадресовывается на страницу просмотра созданных потоков.
Создание учебных потоков по программе и параллели
Вход на страницу возможен только если пользователь имеет право создавать потоки. На странице располагается форма со следующими полями:
- Учебная программа
- Параллель
- Период
- Подразделение
- Дата начала обучения
Параметры "Учебная программа", "Параллель" и "Период" могут быть как выставлены вручную, так и переданы извне. Если они передаются снаружи по ссылке, то эти поля блокируются (становятся нередактируемыми). Передаются либо одновременно все параметры, либо ни одного.
Если программа передана извне, то то поле "подразделение" по умолчанию содержит подразделение программы, для которой создаются потоки, но его можно изменить.
После нажатия на кнопку "создать потоки" начинается создание потоков с выбранными параметрами. Если все потоки создались успешно - то пользователь переадресовывается на страницу просмотра созданных потоков.
API
Надо переделать функцию get_listing().
- перенести ее (и get_select_listing) в справочник.
- добавить в нее новый входной параметр $countonly = false;
- переделать ее таким образом, чтобы она возвращала набор объектов или их количество.
- Если $countonly=false, функция возвращает набор объектов с учетом $limitnum, $limitfrom;
- Если $countonly=true, функция возвращает число - количество объектов, которые были выбраны по заданным параметрам (при этом $limitnum, $limitfrom в запрос не включаются);
- Запрос на выборку формируется как и ранее в get_select_listing(), на основе анализа названий полей переданных параеметров
Проверка прав доступа
Код проверки доступа | расшифровка |
viewone | может видеть один поток |
editcstream | может редактировать поток |
addcstream | может создавать поток |
viewlist | может видеть список потоков |
viewdepartmentlist | может видеть список потоков подразделения |
viewprogrammitemlist | может видеть список потоков программы |
setstatus | может устанавливать статус |