Разработка:im/cstreams
Плагин | |
Название | cstreams |
Тип | im |
Содержание
- 1 Разработка:im/cstreams
- 1.1 Просмотр потока
- 1.2 Просмотр списка потоков
- 1.3 Создание/изменение потоков
- 1.4 Создание привязки академической группы к потоку
- 1.5 Учебный план учащихся
- 1.6 Нагрузка преподавателей
- 1.7 Создание учебных потоков по группе и периоду
- 1.8 Создание учебных потоков по программе и параллели
- 1.9 API
- 1.10 Приказы
Разработка:im/cstreams
Интерфейс создания и редактирования учебных потоков. Учебный поток это связка преподавателя, предмета, учебного периода и группы мудл. После создания потока здесь же можно создать привязку академических групп к потокам.
Просмотр потока
На этой странице можно просмотреть данные одного потока. Сюда происходит перенаправление после создания или изменения потока. Обязательный входной параметр - id потока - cstreamid.
С этой страницы можно перейти на страницу списка потоков или страницу создания привязок групп к созданному потоку.
Также вверху страницы находится ссылка, позволяющая получить экзаменационную ведомость для указанного потока.
При просмотре потока имеется возможность изменить его статус. Форма для этого показывается только пользователям, имеющим право "setstatus". При изменении статуса выводится сообщение "статус успешно изменен", либо "не удалось изменить статус" - в случае ошибки. Если статус является конечным - форма сообщает об этом. Подробнее о статусах учебного потока можно посмотреть в разделе: workflows/cstreams .
После того как пользователь нажал на кнопку изменения статуса, формируется приказ, в котором указывается с какого статуса на какой перешли и дату смены статуса. На основании этого приказа и происходит смена статуса.
Просмотр списка потоков
На этой странице можно просмотреть список всех потоков, список всех потоков одного подразделения, список всех потоков одного преподавателя, список всех потоков одной академической группы, одного статуса. Фильтрация происходит с помощью формы поиска по перечисленным параметрам. Необязательный входной параметр - id подразделения, id преподавателя, id академической группы. С этой страницы можно перейти на страницу создания нового потока, редактирования существующего потока, создания привязки академических групп к потоку (добавить значок привязки в колонку действий).
Создание/изменение потоков
Выводится форма редактирования потока. Форма содержит поля
- Учебный период - меню выбора учебных периодов из списка (ageid);
- Учебная дисциплина - меню выбора дисциплины из списка (programmitemid);
- Преподаватель - меню выбора преподавателя (из таблицы persons) (teacherid); В этом поле появляются только пользователи из таблицы teachers, которые могут преподавать указанный предмет. Если пользователь назначен преподавателем потока, но его нет в таблице teachers или же он уже не преподает данный предмет, то он также будет отображаться в этом меню, но записать его учителем других потоков будет нельзя или не будет возможности записать его преподавателем к потоку по этому предмету.
- Подразделение - меню выбора подразделения из списка (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 | может устанавливать статус |
order()
Подключает методы для работы с приказом
Параметры:
- $code (string) - код типа для исполнения приказа
- $id - id записи в таблице orders
Возвращаемые значения:
- (object) order - объект приказа
Приказы
В этом разделе описаны классы, которые используются для формирования приказов.
dof_im_ages_order_change_status
Наследуется от класса dof_storage_orders_baseorder. Класс для работы с приказом для смены статуса. Отвечает за смену статуса учебного периода.
execute_actions()
Функция отвечающая за выполнение приказа. Обращается к плагину workflows/cstreams, для того чтобы изменить статус.
Параметры:
- $order - объект, содержащий информацию по приказу. Структура полей объекта совпадает со структурой полей таблицы orders. Поле sdata содержит объект следующей структуры:
- cstreamid - id записи потока в таблице cstreams
- datechange - дата смены статуса
- oldstatus - старый статус
- newstatus - новый статус
dof_im_ages_order_status
Класс для работы с приказами и сбора данных для приказов.
generate_order_status()
Формирует сохраняет, подписывает и исполняет приказ смены статуса потока
Возвращаемые значения:
- (bool) успех исполненной задачи.
order_change_status()
Формирует приказ для смены статуса потока
Возвращаемые значения:
- (object) - объект данных для сохранения приказа в БД.
save_order_change_status()
Сохраняет приказ
Параметры:
- $orderobj (object) - объект данных для сохранения приказа в БД.
Возвращаемые значения:
- (int|bool) - id сохраненной записи в БД или false в случае ошибки.
sign_and_execute_order()
Подписывает и исполняет приказ
Параметры:
- $orderid (int) - id записи в таблице orders.
Возвращаемые значения:
- (bool) - успех исполненной задачи.
is_signed()
Проверяет подписан ли приказ. Аналогичен частному методу класса dof_storage_orders_baseorder
Параметры:
- $orderid (int) - id записи в таблице orders.
Возвращаемые значения:
- (bool) - успех исполненной задачи.