Разработка:im/cstreams

Материал из DOF
Версия от 13:49, 23 октября 2009; Johnleft (обсуждение | вклад) (добавлен infobox)
Перейти к: навигация, поиск
Плагин
Название 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 может устанавливать статус