Порталы: бизнес-логика¶
Обзор¶
Портал — это настраиваемое внутреннее рабочее пространство пользователя/организации, собранное из страниц и блоков.
Базовая иерархия:
Портал (template) -> Страница/лейаут -> Блоки -> Фильтры/параметры -> Данные
Бизнес-объекты¶
- Шаблон портала (
PortalGridTemplates). - Блок портала (
PortalGridBlocks). - Фильтры блока (
PortalGridBlockFilters,PortalGridFilterParams). - Доступ групп к порталу (
PortalGridTemplateGroups). - Пользовательский шаблон (
PortalGridUserTemplates).
Основные сценарии¶
1. Открытие портала¶
Пользователь получает доступные шаблоны и видит страницу с набором блоков, разрешённых его группам.
2. Загрузка данных блока¶
Каждый блок получает данные из своего backend-источника и отображает их в соответствии с типом блока.
3. Изменение конфигурации блока¶
Администратор меняет параметры/фильтры блока; пользователь видит обновлённый контент после повторной загрузки.
4. Управление доступом¶
Доступ к порталу задаётся группами; изменение списка групп сразу меняет круг видимости.
5. Пользовательская персонализация¶
Пользователь может иметь собственный layout (user template) поверх админского шаблона.
Бизнес-правила¶
- Если у пользователя нет прав на template, портал не должен отображаться в списке.
- Блок отображается только при валидной конфигурации и доступном data-source.
- Фильтры блока не должны нарушать права доступа пользователя к исходным данным.
- Массовый апдейт user templates используется для синхронизации после изменений базового шаблона.
Структура портала¶
| Уровень | Описание |
|---|---|
| Группа | Объединяет секции в виде вкладок |
| Секция | Конкретный портал, с заголовком или без |
| Блок (виджет) | Контент в секции |
Главный портал системы — стартовая страница (по клику на логотип). Помимо главного, отдельные порталы могут быть у подразделений и групп — ссылки на них обычно добавляются в боковую панель «Избранное».
Каталог виджетов¶
| Виджет | Назначение |
|---|---|
| Баннер-кнопка (с 2.261) | Баннер с переходом по ссылке (модалка / Ctrl+клик — новая вкладка) |
| График | Сводные данные в табличном или графическом виде: линейная диаграмма, столбчатая, секторная (круговая), спидометр, воронка продаж, линейная с накоплением (вертикальная и горизонтальная) |
| Группа виджетов | Несколько виджетов как вкладки. Сохраняются настройки каждого. При переполнении — кнопка «Ещё» с выпадающим списком |
| Диаграмма Ганта | Список задач в виде Ганта прямо на портале |
| Избранное (с 2.263) | Избранное пользователя по выбранным типам объектов (задачи, пользователи, пространства, категории, чаты, отчёты, ссылки) |
| Календарь | Данные с привязкой к дате (задачи, дни рождения и т.п.). При выборе даты в календаре обновляется список под ним. Если выбран месяц — данные за месяц. Лимит 20 записей |
| Календарь New (с 2.262) | Полноценный календарь как в профиле. Соответствует часовому поясу пользователя |
| Контакты (с 2.262) | Список, карусель или круги: недавние/звонки/коллеги/избранные/отдел/преднастроенный список. Звонки учитывают p2p-вызовы |
| Лента социальной сети | Последние публикации сообществ. Несколько лент в виде вкладок. Полный функционал (просмотр, комментарии, создание/редактирование/удаление по правам). Кнопка «Перейти ко всем постам» — на источник |
| Кнопка-Тикер (с 2.262) | Счётчик с иконкой или кнопка создания задачи. Открывает ссылку (модалка / Ctrl+клик — вкладка) |
| Меню | Произвольное число кнопок-переходов на страницы |
| Новости | Задачи новостных категорий — большой блок, список или карусель. От 1 до 6 (кроме 4). Опции: автор, рубрика, аннотация, дата, лайки, просмотры. Кнопка справа открывает галерею с фильтром по тегам и карточкой новости (с правом редактирования — кнопка перехода в табличный вид) |
| Поиск задач | Список задач по условиям отбора. На каждой строке могут быть кнопки для действий (приоритет, переход по статусу) |
| Список задач (с 2.262) | Задачи текущего пользователя: на сегодня / активные / недавние / новые из категории / просроченные / на подписи / избранные. Динамическое обновление без перезагрузки |
| Степпер | Пошаговый процесс с вариантами развития; в конце — действие |
| Счётчики (с 2.262) | Различные счётчики на странице |
| Таблица | Произвольная информация в табличном виде |
Подробные настройки виджетов — admin.md и portal-api-cookbook.md.
Зависимости¶
grids,reports,tasks,notifications,auth.
Операционные риски¶
- Пустые блоки из-за битых фильтров/невалидного SQL-источника.
- Расхождение между admin template и user template.
- Ошибки доступа к порталу при неконсистентных групповых правах.
Что проверять при инцидентах¶
- Запрос загрузки портала и полученный список блоков.
- Данные конфигурации блока и его фильтров.
- Таблицу
PortalGridTemplateGroupsдля пользователя. - Наличие устаревшего
PortalGridUserTemplates.