Разработка:im/departments
Содержание
Отделы
Этот интерфейс позволяет просматривать и редактировать информацию о структурных подразделениях.
Список отделов
Подразделения выводятся списком, каждая строчка в котором отображает информацию о структурном подразделении. В левом верхнем углу экрана содержится ссылка на создание подразделения.
Пользователь попадает на эту страницу, только если у него есть право просматривать данные своего подразделения (в этом случае необходимо указать дополнительный параметр - id подразделения), либо имеет право видеть все подразделения.
Если у пользователя есть право редактировать подразделения, то в последней строке таблицы с информацией вместо иконки просмотра появляется иконка редактирования, нажатие на которую отправляет пользователя на страницу редактирования учебной программы.
Также, если указать дополнительный параметр leaddepid - id подразделения, страница выведет список всех дочерних подразделений указанного подразделения.
Создание и редактирование
Это действие доступно только для пользователей с правом редактирования подразделения.
Назначение полей:
- Название - название подразделения. Обязательное поле.
- Кодовое название - код подразделения, обязательное поле. Не может быть создано двух подразделений с одинаковым кодом.
- Руководитель - научный руководитель структурного подразделения. По умолчанию не указан. Выбирается из списка существующих персон.
- Вышестоящий отдел - какому подразделению подчиняется данное подразделение. По умолчанию стоит самое первое созданное подразделение. Выбирается из списка существующих подразделений. Может принимать значение - нет (штатная ситуация). Обязательное поле.
- Часовой пояс - в какой временной зоне находится подразделение. Необходимо для правильного расчета времени при составлении рассписания и др. Выбирается по шкале универсального координированного времени, UTC. По умолчанию время сервера (GMT+5). Обязательное поле.
Также имеет дополнительные поля адреса, которые скрыты. Если данные поля активны, то на подразделение создается/редактируется его адрес.
При создании/редактировании подразделения
- Поле "код предмета" должно быть уникальным и содержать латинские буквы и числа
При создании/редактировании адреса подразделения
- Индекс должен быть числовым.
- Если указывается улица, то необходимо указать ее тип.
Карточка отдела
Выводит всю информацию о структурном подразделении. Имеет те же поля, что и в форме создания/редактирования включая адрес подразделения. Также выводит список всех дочерних подразделения данного позразделения в древовидной структуре.
Планы
- Добавить колонку "дочерние отделы". И в ней ссылка на список дочерних подразделений.
- Добавить под названием родительского подразделения ссылки "перейти на уровень вверх" и "перейти на верхний уровень".
- Выводить в табличку всю древовидную структуру дочрних подразделений, а не только один уровень.
API
Здесь описаны функции для работы со списком подразделений.
get_listing()
Параметры:
- $limitfrom - с какой записи начинать вывод
- $limitnum - сколько записей выводить на одной странице
- $conds - Обьект, содержащий данные с условиями выборки, в формате поле_БД->значение по умолчанию пустой массив
Возвращаемые значения:
- (array) массив записей из базы, или false в случае ошибки
form()
Возвращает форму создания/редактирования подразделений с начальными данными
Параметры:
- $id - id подразделения в таблице departments, для редактирования которой вызывается форма. По умолчанию NULL (создается новое подразделение).
Возвращаемые значения:
- moodleQuickForm object - объект формы, с загруженными в нее исходными данными.
showlist()
Возвращает html-код списка подразделений.
Параметры:
- $list - массив записей из таблицы departments для отображения.
Возвращаемые значения:
- (string) - html-код или false в случае ошибки
show_id()
Возвращает html-код отображения информации об одном подразделении
Параметры:
- $id - id записи в таблице departments
Возвращаемые значения:
- (string) - html-код или false в случае ошибки