Фильтры и сохранённые выборки
Список Задачи отбирает задачи по произвольному условию — от «мои открытые» до «всё, что было в статусе Готово на прошлой неделе, но сейчас не там». Условие собирается мышью, без языка запросов, а собранное можно сохранить и переиспользовать: на доске, в виджете дашборда, в правиле автоматизации, в поиске и через API.
Быстрый фильтр
Над списком задач стоит строка чипов и кнопка «+ Фильтр». Кнопка открывает окошко из трёх полей — поле, оператор, значение, — и добавленное условие становится чипом; крестик на чипе его убирает.
Чипы складываются по И: задача попадает в выдачу, если выполнены все. Быстрыми доступны девять самых частых полей: статус, название, приоритет, тип, исполнитель, метки, срок, дата создания и дата изменения. Остальные — в конструкторе.
Конструктор условий
Кнопка «Условия» разворачивает конструктор. Здесь условия образуют дерево, а не список:
- группа И — выполнены все условия внутри;
- группа ИЛИ — выполнено хотя бы одно;
- флажок НЕ на любом условии или группе переворачивает смысл;
- группы вкладываются друг в друга — «+ условие» и «+ группа».
Так выражается то, ради чего в других трекерах пишут запросы: «высокий приоритет и при этом либо нет исполнителя, либо срок уже прошёл».
Быстрый фильтр и конструктор действуют вместе, объединяясь по И. Пустая группа ничего не сужает — конструктор так и пишет.
Поля
| Поле | Что сравнивает |
|---|---|
| Ключ | Ключ задачи целиком или его часть. |
| Название, Описание | Текст названия и текст описания по отдельности. |
| Текст (название и описание) | Одно условие сразу по обоим. |
| Статус | Текущий статус. Единственное поле, у которого есть история. |
| Категория статуса | Крупные группы workflow: К выполнению, В работе, Готово. Не зависит от того, как названы статусы в вашей схеме. |
| Приоритет, Тип задачи, Резолюция | Значения соответствующих справочников. |
| Story points | Число: равно, больше, меньше, пусто. |
| Создана, Изменена, Срок | Даты — с функциями вроде «начало недели». |
| Проект | Нужен, когда выборка идёт по нескольким проектам. |
| Исполнитель, Автор, Соисполнитель, Наблюдатель | Люди; значение выбирается пикером или функцией «я». |
| Метки | Совпадение по метке, вхождение подстроки, наличие меток вообще. |
| Спринт | Конкретный спринт или, функцией, все активные. |
| Родительская задача, Связанная задача | Иерархия и связи: подзадачи одного родителя, всё связанное с задачей. |
Список полей приходит с сервера, поэтому он одинаков в быстром фильтре и в конструкторе, а операторы предлагаются только те, что подходят выбранному полю. Тот же набор доступен ассистенту и API.
Операторы
| Группа | Операторы |
|---|---|
| Сравнение | =, ≠, один из, ни один из |
| Порядок | <, ≤, >, ≥ — для чисел и дат |
| Текст | содержит, не содержит, начинается с |
| Пустота | пусто, не пусто |
| История | был, не был, был одним из, менялся, менялся на, менялся с |
Пустые значения
Оператор ≠ пустое поле не включает: «исполнитель ≠ Иванов» вернёт задачи других исполнителей, но не задачи вовсе без исполнителя. Это привычное поведение трекеров, и оно избавляет от выборок, где половина результата — «ничьё».
Чтобы получить именно незаполненные, есть пусто и не пусто; чтобы получить и то и другое — группа ИЛИ из двух условий.
Функции контекста
У значения есть второй режим — «Подставить функцию контекста». Функция вычисляется в момент выполнения фильтра, поэтому сохранённая выборка остаётся верной завтра и у другого человека.
| Функция | Что подставляет |
|---|---|
currentUser() | Того, кто смотрит. «Мои задачи» — это исполнитель = currentUser(). |
membersOf(группа) | Всех участников указанной группы пользователей. |
openSprints(), closedSprints(), futureSprints() | Активные, завершённые и запланированные спринты. |
now() | Текущий момент. |
startOfDay(), endOfDay() | Начало и конец суток. |
startOfWeek(), endOfWeek() | Начало и конец недели (неделя считается с понедельника). |
startOfMonth(), endOfMonth(), startOfYear(), endOfYear() | То же для месяца и года. |
У функций даты есть смещение — поле рядом с названием: -1d, -2w, +3h. Единицы — s (секунды), m (минуты), h (часы), d (дни), w (недели). «Просрочено к началу сегодняшнего дня» — это Срок < startOfDay(), а «изменено за последнюю неделю» — Изменена > now() со смещением -1w.
Границы суток и недель считаются по UTC
Если ваша команда работает в часовом поясе, далёком от нулевого, startOfDay() может отличаться от вашей полуночи на несколько часов. Для отбора «за последние сутки» надёжнее now() со смещением -1d.
История статусов
Операторы был / не был / был одним из / менялся / менялся на / менялся с работают по журналу переходов и доступны только полю «Статус»:
- был Готово — задача когда-либо доходила до этого статуса, даже если сейчас вернулась в работу;
- менялся на В работе — переход в этот статус вообще случался;
- менялся с Готово — задачу из него забирали обратно.
История остальных полей не ведётся, поэтому «кому задача была назначена в прошлом месяце» спросить нельзя — ни здесь, ни в отчётах.
Сортировка и счётчик
Клик по заголовку колонки сортирует список: по возрастанию → по убыванию → без сортировки. Сортируется вся выборка на сервере, а не показанная страница. На телефоне, где заголовков нет, поле и направление выбираются селектором над списком.
Рядом с сохранёнными фильтрами показано «Найдено: N» — сколько задач удовлетворяет условию целиком, независимо от того, сколько их загружено на экран.
Сохранённые фильтры
Собранное условие сохраняется под именем и попадает в селект над списком, в одну из двух групп:
| Группа | Кто видит |
|---|---|
| Мои | Только вы (и администратор). |
| Общие | Все сотрудники инстанса — флажок «Общий (виден всем)» при сохранении. |
Кнопки рядом: «Сохранить фильтр» — имя и флажок общего доступа, «Удалить» — убрать выбранный (свой; администратор может удалить любой).
Выбор фильтра в селекте заменяет текущие условия: быстрый фильтр очищается, дерево кладётся в конструктор целиком, применяется сохранённая с фильтром сортировка. Условие видно и его можно доправить — фильтр не «чёрный ящик».
Фильтр сохраняется вместе с активным проектом: в селекте вы видите фильтры текущего проекта и те, что сохранены без проекта. Сохраните нужный при пустом выборе проекта, если он должен быть доступен везде.
Общий фильтр не открывает чужие задачи
Права проверяются в момент выполнения и по тому, кто смотрит. Один и тот же общий фильтр покажет вам и коллеге разные списки, если у вас разный доступ к проектам. Общими стоит делать полезные всем срезы — «просроченное по отделу», «в работе дольше двух недель», — а не способ поделиться доступом.
Клиенты Service Desk фильтрами не пользуются: у них портал со списком своих обращений.
Где ещё работает сохранённый фильтр
Фильтр — общая сущность продукта, а не настройка одной страницы:
| Где | Что делает |
|---|---|
| Доска | Доска показывает выборку фильтра вместо всех задач проекта — см. Доски → Доска по фильтру. Выбрать можно только общий фильтр: доску видит вся команда. |
| Дашборд | Виджет «Результат фильтра» — список задач или одно число, см. Отчёты и аналитика → Дашборд. |
| Автоматизация | Правило по расписанию проходит по задачам выборки и выполняет действия для каждой — см. Автоматизация → Расписание по выборке. |
| Поиск | Сохранённые поиски — это те же фильтры, см. Поиск → Сохранённые поиски. |
| ИИ и API | Ассистент строит такое же дерево условий — см. ИИ и доступ по API. |
Фильтр, на который ссылается доска или правило, удалять не стоит: доска вернётся к «всем задачам проекта» и честно об этом сообщит, а правило запишет в журнал прогонов, что выборка недоступна.
Ограничения
- Не больше 64 условий в одном фильтре и 8 уровней вложенности групп. Кнопки добавления гаснут, когда предел достигнут.
- Текстового языка запросов нет — условие собирается конструктором. Поделиться им можно сохранённым фильтром.
- Выгрузки результата в файл нет.
- Пользовательские поля в конструктор пока не попадают: по ним фильтруют правила автоматизации, а в списке задач их видно на вкладке задачи.
- Фильтр может выборку только сузить. Задачи проектов, к которым у вас нет доступа, не покажет никакое условие.
Что дальше
- Задачи — сами задачи, их поля и связи.
- Доски и спринты — доска по фильтру.
- Отчёты и аналитика — готовые срезы, которые считать фильтром не нужно.
Смотрите также
- Поиск и уведомления — полнотекстовый поиск и чем он отличается от фильтра.
- Автоматизация — правила, которые ходят по выборке сами.
- ИИ и доступ по API — то же дерево условий для ассистента и скриптов.