Разработка:im/departments — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
 
(не показаны 3 промежуточные версии 2 участников)
Строка 8: Строка 8:
  
 
=== Список подразделений ===
 
=== Список подразделений ===
 +
Подразделения выводятся списком, каждая строчка в котором отображает информацию о структурном подразделении. В левом верхнем углу экрана содержится ссылка на создание подразделения.
 +
В зависимости от уровня прав, которыми располагает пользователь, становятся доступны функции создания, удаления и редактирования.
 +
Интерфейс позволяет увидеть только подразделения текущего местонахождения пользователя( само подразделение и его прямые потомки ).
  
Подразделения выводятся списком, каждая строчка в котором отображает информацию о структурном подразделении. В левом верхнем углу экрана содержится ссылка на создание подразделения.
 
  
В зависимости от уровня прав, которыми располагает пользователь, становятся доступны функции создания, удаления и редактирования.
 
  
Интерфейс позволяет увидеть только подразделения текущего местонахождения пользователя( само подразделение и его прямые потомки ).
+
=== Форма сохранения подразделения ===
  
=== Сохранение подразделения ===
+
Форма сохранения подразделения приспособлена под включение на любую страницу системы и работает с системой потока сообщений Деканата.  
Это действие доступно только для пользователей с правом редактирования.
 
  
 
'''Назначение полей:'''
 
'''Назначение полей:'''
 
* ''Название'' - Название подразделения. Обязательное поле.
 
* ''Название'' - Название подразделения. Обязательное поле.
* ''Кодовое название'' - Код подразделения. Уникальное поле. Автоматически генерируется для новых подразделений, если не указано вручную.
+
* ''Код подразделения'' - Обязательное поле. Уникальное поле. Автоматически генерируется для новых подразделений, если не указано вручную(транслитерация первых 10 символов названия и  добавление случайного номера).
* ''Руководитель'' - Руководитель структурного подразделения. По умолчанию не указан. Выбирается из списка существующих персон. Несет исключительно информационную цель. Пользователь не получает никаких прав, став Руководителем.
+
* ''Руководитель'' - Необязательное поле. Руководитель структурного подразделения. По-умолчанию не указан. Выбирается из списка существующих персон и несет исключительно информационную цель. Пользователь не получает никаких прав, став Руководителем.
* ''Вышестоящий отдел'' - Какому подразделению подчиняется данное подразделение. По умолчанию стоит подразделение текущего местоположения пользователя. Выбирается из списка существующих подразделений. Обязательное поле.
+
* ''Вышестоящий отдел'' - Обязательное поле. Какому подразделению подчиняется данное подразделение. По умолчанию стоит подразделение текущего местоположения пользователя. Выбирается из списка существующих подразделений.  
* ''Часовой пояс'' - в какой временной зоне находится подразделение. Необходимо для правильного расчета времени при составлении рассписания и др. Выбирается по шкале универсального координированного времени, UTC. По умолчанию время сервера (GMT+5). Обязательное поле.
+
* ''Часовой пояс'' - Обязательное поле. Временная зона подразделения. Необходимо для правильного расчета времени при составлении расписания и др. действий в системе. Выбирается по шкале универсального координированного времени, UTC. По умолчанию время сервера.  
  
 
=== Карточка отдела ===
 
=== Карточка отдела ===
  
Выводит всю информацию о структурном подразделении. Имеет те же поля, что и в форме создания/редактирования включая адрес подразделения. Также выводит список всех дочерних подразделения данного позразделения в древовидной структуре.
+
Выводит всю информацию о структурном подразделении. Также выводит список всех дочерних подразделения данного подразделения в древовидной структуре.
  
=== Планы ===
+
===События===
* Добавить колонку "дочерние отделы". И в ней ссылка на список дочерних подразделений.
+
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.
* Добавить под названием родительского подразделения ссылки "перейти на уровень вверх" и "перейти на верхний уровень".
+
 
* Выводить в табличку всю древовидную структуру дочрних подразделений, а не только один уровень.
+
====Перехватываемые события====
 +
{| border="1"
 +
|+ Таблица событий, которые перехватывает этот плагин
 +
! Тип плагина
 +
! Код плагина
 +
! Код события
 +
! Доп. данные
 +
! Пояснение
 +
|-
 +
| departments
 +
| storage
 +
| insert
 +
|
 +
| Сбрасывается кеш списка подразделений
 +
|-
 +
| departments
 +
| storage
 +
| update
 +
|
 +
| Сбрасывается кеш списка подразделений
 +
|-
 +
| obj
 +
| im
 +
| get_object_url
 +
|
 +
| Возвращается ссылка на объект
 +
|}
 +
 
 +
====Генерируемые события====
 +
-
  
 
== API ==
 
== API ==
Здесь описаны функции для работы со списком подразделений.
+
 
 +
Методы интерфейса подразделений
 +
 
 
===== get_listing() =====
 
===== get_listing() =====
  
Строка 46: Строка 77:
 
* (array) массив записей из базы, или false в случае ошибки
 
* (array) массив записей из базы, или false в случае ошибки
  
===== showlist() =====
+
=====showlist($list, $addvars, $options = [])=====
Возвращает html-код списка подразделений.
+
Возвращает HTML-код таблицы подразделений
  
 
''Параметры:''
 
''Параметры:''
* $list - массив записей из таблицы [[Разработка:storages/departments|departments]] для отображения.
+
* (array) $list - Массив подразделений из справочника [[Разработка:storages/departments|departments]].
 +
* (array) $addvars - Массив GET-параметров для передачи по ссылкам.
 +
* (array) $options - Массив дополнительных параметров отображения
  
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) - html-код или false в случае ошибки
+
* (string) - HTML-код таблицы подразделений
  
 
===== show_id() =====
 
===== show_id() =====
Возвращает html-код отображения информации об одном подразделении
+
Возвращает HTML-код отображения информации об одном подразделении
  
 
''Параметры:''
 
''Параметры:''
Строка 62: Строка 95:
  
 
''Возвращаемые значения:''
 
''Возвращаемые значения:''
* (string) - html-код или false в случае ошибки
+
* (string) - HTML-код или false в случае ошибки
 +
 
 +
===== get_html_link($id, $withcode = false) =====
 +
Возвращает HTML-код отображения информации об одном подразделении
 +
 
 +
''Параметры:''
 +
* (int)$id - ID записи в таблице [[Разработка:storages/departments|departments]]
 +
* (bool)$withcode - Требуется код подразделения в названии ссылки
 +
 
 +
''Возвращаемые значения:''
 +
* (string) - HTML-строка со ссылкой на подразделение или пустая строка в случае ошибки
 +
 
 +
===== get_departments_select_options($parentdep = 0, $options = []) =====
 +
Возвращает список доступных подразделений для отображения в селекте.
 +
Метод является рекурсивным и кеширует список подразделений.
 +
Кеш сбрасывается при любом CrUD действии для актуализации данных.
 +
 
 +
''Параметры:''
 +
* (int)$parentdep - Подразделение, от которого начинается сбор массива
 +
* (array)$options - Массив опций сбора данных
 +
            ['delimiter'] - Разделитель для уровней иерархии. По - умолчанию '-'
 +
            ['statuses'] -  Массив статусов в виде ['status1', 'status2']. По-умолчанию - actual метастатус
 +
            ['access_callback'] - Функция дополнительной проверки прав доступа к подразделению
 +
 
 +
''Возвращаемые значения:''
 +
* (array) - Массив для добавления в select список

Текущая версия на 10:24, 2 марта 2018

Плагин
Название departments
Тип im


Подразделения

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

Список подразделений

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


Форма сохранения подразделения

Форма сохранения подразделения приспособлена под включение на любую страницу системы и работает с системой потока сообщений Деканата.

Назначение полей:

  • Название - Название подразделения. Обязательное поле.
  • Код подразделения - Обязательное поле. Уникальное поле. Автоматически генерируется для новых подразделений, если не указано вручную(транслитерация первых 10 символов названия и добавление случайного номера).
  • Руководитель - Необязательное поле. Руководитель структурного подразделения. По-умолчанию не указан. Выбирается из списка существующих персон и несет исключительно информационную цель. Пользователь не получает никаких прав, став Руководителем.
  • Вышестоящий отдел - Обязательное поле. Какому подразделению подчиняется данное подразделение. По умолчанию стоит подразделение текущего местоположения пользователя. Выбирается из списка существующих подразделений.
  • Часовой пояс - Обязательное поле. Временная зона подразделения. Необходимо для правильного расчета времени при составлении расписания и др. действий в системе. Выбирается по шкале универсального координированного времени, UTC. По умолчанию время сервера.

Карточка отдела

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

События

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

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
departments storage insert Сбрасывается кеш списка подразделений
departments storage update Сбрасывается кеш списка подразделений
obj im get_object_url Возвращается ссылка на объект

Генерируемые события

-

API

Методы интерфейса подразделений

get_listing()

Параметры:

  • $limitfrom - с какой записи начинать вывод
  • $limitnum - сколько записей выводить на одной странице
  • $conds - Обьект, содержащий данные с условиями выборки, в формате поле_БД->значение по умолчанию пустой массив

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

  • (array) массив записей из базы, или false в случае ошибки
showlist($list, $addvars, $options = [])

Возвращает HTML-код таблицы подразделений

Параметры:

  • (array) $list - Массив подразделений из справочника departments.
  • (array) $addvars - Массив GET-параметров для передачи по ссылкам.
  • (array) $options - Массив дополнительных параметров отображения

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

  • (string) - HTML-код таблицы подразделений
show_id()

Возвращает HTML-код отображения информации об одном подразделении

Параметры:

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

  • (string) - HTML-код или false в случае ошибки
get_html_link($id, $withcode = false)

Возвращает HTML-код отображения информации об одном подразделении

Параметры:

  • (int)$id - ID записи в таблице departments
  • (bool)$withcode - Требуется код подразделения в названии ссылки

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

  • (string) - HTML-строка со ссылкой на подразделение или пустая строка в случае ошибки
get_departments_select_options($parentdep = 0, $options = [])

Возвращает список доступных подразделений для отображения в селекте. Метод является рекурсивным и кеширует список подразделений. Кеш сбрасывается при любом CrUD действии для актуализации данных.

Параметры:

  • (int)$parentdep - Подразделение, от которого начинается сбор массива
  • (array)$options - Массив опций сбора данных
            ['delimiter'] - Разделитель для уровней иерархии. По - умолчанию '-' 
            ['statuses'] -  Массив статусов в виде ['status1', 'status2']. По-умолчанию - actual метастатус
            ['access_callback'] - Функция дополнительной проверки прав доступа к подразделению

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

  • (array) - Массив для добавления в select список