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

Материал из DOF
Версия от 13:36, 19 октября 2009; Johnleft (обсуждение | вклад) (API: описание переделки get_listing)
Перейти к: навигация, поиск

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

Интерфейс создания и редактирования учебных потоков. Учебный поток это связка преподавателя, предмета, учебного периода и группы мудл. После создания потока здесь же можно создать привязку академических групп к потокам.

Просмотр потока

На этой странице можно просмотреть данные одного потока. Сюда происходит перенаправление после создания или изменения потока. Обязательный входной параметр - id потока - cstreamid.

С этой страницы можно перейти на страницу списка потоков или страницу создания привязок групп к созданному потоку.

Просмотр списка потоков

На этой странице можно просмотреть список всех потоков, список всех потоков одного подразделения. Необязательный входной параметр - 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 в запрос не включаются);