Глава 10: Фильтры и условия панелей
В этой главе мы шаг за шагом достроим панель задач. Если возникнут вопросы — обращайтесь на форум.
Начнём с разбора задания из прошлой главы и продолжим наше путешествие!
10.1 Решение задания из предыдущей главы
10.1.1 Статусы и ссылки
Сначала добавим переходы по ссылкам для разных статусов. Вот структура ссылок для каждого:
(Допустим, наша ссылка — http://xxxxxxx/admin/hliu6s5tp9xhliu6s5tp9x)
Ответ на задание
10.1.2 Добавление множественного поля «Ответственный»
- Создание пользовательского поля: создаём поле «Ответственный» множественного выбора и заполняем псевдонимы (или имена пользователей), чтобы быстро выбирать сотрудников при назначении задач.

- В настройке отчёта: установите условие «Ответственный/Псевдоним содержит Текущий фильтр/Ответственный». Это позволит быстро находить задачи, относящиеся к выбранному ответственному.

Несколько раз протестируйте фильтр, чтобы убедиться в его работе.

10.2 Связываем панель с пользователями
Можно показывать разный контент в зависимости от пользователя:
- Установите значение по умолчанию для поля «Ответственный» — «Текущий пользователь/Псевдоним»: так система автоматически отобразит задачи, связанные с текущим пользователем, повышая удобство работы.


- После обновления страницы: панель автоматически загрузит данные, связанные с авторизованным пользователем. (Не забудьте добавить условие фильтрации по пользователю к нужным графикам.)

10.3 Перестройка фильтрации задач
Возможно, Вы заметили проблему:
После прямого «Установить диапазон данных» в табличном блоке задачи будут заранее ограничены конкретным статусом, и при попытке выбрать другой статус данные окажутся пустыми!
Что делать? Уберём такую фильтрацию данных и попробуем другой подход!
- Уберите фильтр по диапазону данных: чтобы статус не блокировался, и Вы могли гибко менять условия фильтрации.

- Настройте значение по умолчанию для блока фильтра-формы.
Помните наш блок фильтра?
Создайте новый блок-форму для фильтрации задач, добавьте поле Статус и другие нужные поля — будем использовать их для подстановки значений из URL. (Не забудьте соединить блок фильтра с целевым блоком задач.)
- Установите значение по умолчанию для поля «Статус» —
URL search params/task_status.


- Тестирование новой фильтрации: меняйте статус сколько угодно, всё переключается свободно.

- Опционально: чтобы каждый пользователь видел только свои задачи, установите для поля «Ответственный» значение по умолчанию — «Текущий пользователь».
10.4 Новости, объявления и фокус информации
Доработаем нашу базу документов и выведем нужную информацию на панель!
При длительном управлении документацией материалов становится всё больше, и появляются разные потребности:
- News: фокус на динамике проекта, достижениях, вехах
- Временные объявления и напоминания
10.4.1 Горячая информация (News)
- Добавьте поле «Горячая информация»: в таблицу документов добавьте чекбокс «Горячая информация», отмечающий, является ли документ важной ново стью.

- Отметка документа как новости: выберите любой документ, в форме редактирования добавьте поле «Горячая информация» и поставьте галочку.

- Создание блока «Список»: вернитесь на панель и создайте блок «Список» > выберите таблицу документов.

Перетащите блок вправо, выведите «Дата создания» и «Заголовок», подгоните ширину полей и отключите «Показывать заголовок».

- Отображение горячей информации:
Чтобы подчеркнуть актуальность, можно одновременно отображать время.


Сортируем по дате создания в обратном порядке — показываем самые свежие новости.


Простое горячее новостное окно готово — участники команды могут следить за важными событиями проекта в любое время!

10.4.2 Объявления
Теперь добавим простое публичное объявление: уверены, Вы видели его в нашем онлайн-Demo. Такие временные уведомления не нужно показывать долго и фиксировать в отчётах — это короткие напоминания и сообщения.
- Создайте блок Markdown: на свободной области панели добавьте блок Markdown с текстом объявления.

Подробнее о Markdown — в нашем официальном Demo, документации или учебнике «Лёгкая документация».
В качестве простого примера ниже — «Эффектное объявление» на HTML, чтобы продемонстрировать возможности блока Markdown.
- Пример кода:

10.5 Итог
Мы успешно собрали персонализированную панель: команда может эффективнее управлять задачами, следить за прогрессом проекта и своевременно получать объявления и уведомления.
Фильтрация по статусам и ответственным, настройка горячих новостей — всё это направлено на улучшение пользовательского опыта, повышение удобства и гибкости системы.
Персонализированная панель готова — пробуйте, дорабатывайте под свои задачи и переходите в следующую главу!
Пр одолжайте экспериментировать! Если возникнут вопросы — не забывайте о официальной документации NocoBase и сообществе NocoBase.

