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

Материал из DOF
Перейти к: навигация, поиск

Отделы

Этот интерфейс позволяет просматривать и редактировать информацию о структурных подразделениях.

Список отделов

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

Пользователь попадает на эту страницу, только если у него есть право просматривать данные своего подразделения (в этом случае необходимо указать дополнительный параметр - 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-код отображения информации об одном подразделении

Параметры:

Возвращаемые значения:

  • (string) - html-код или false в случае ошибки