Filtering and grouping
Route: /org/tasks · Permission: View Tasks
1. What the filter bar is
Five independent mechanisms narrow the board, and they combine. Knowing which is which explains most "where did my task go?" moments:
| Mechanism | Where | Scope |
|---|---|---|
| Search | Header | Server-side, whole project |
| Filters — conditions on any field | Beside the search box | Server-side. List and Table views |
| Category rail | Left | Server-side |
| Milestone tabs | Above the board | Server-side |
| Filter bar | Below the header | Mixed — see below |
A set of conditions can be kept under a name as a saved view and applied again later.
Grouping is not filtering. It changes how rows are arranged; it never removes one.
2. How filtering spreads across the views
The same filter state drives all four views, so switching view keeps your filters. The Calendar view is the exception — it receives the filtered set but does not group.
3. Using the bar — step by step
Step 1 · Group
Group by offers seven modes:
| Mode | Groups by | Ungrouped bucket |
|---|---|---|
No Grouping | — | — |
Priority | Project priorities | No Priority |
Task Type | Project types | No Type |
Assignee | The assigned user | Unassigned |
Category | Task categories | Uncategorized |
Project Phase / Milestone | Milestones | No Phase / Milestone |
Tag | Tags | Untagged |
A task with three tags appears in three groups. Group counts on that mode add up to more than the number of tasks, and that is correct behaviour rather than duplication.
With No Grouping, the list collapses to top-level rows — a subtask whose parent is also on the
page is nested under it rather than shown twice.
Step 2 · Narrow
| Control | Values |
|---|---|
| Billing | Billing: All · Billable Only · Non-billable Only |
| My Tasks | Toggle. Reads All Tasks / My Tasks Only |
| Hide Subtasks | Toggle. Reads Hide Subtasks / Subtasks Hidden |
| Hide Done | Toggle. Reads Hide Done / Done Hidden |
| Priority | Coloured circles, one per priority. Multi-select |
| Type | Icon circles, one per type. Multi-select |
| Assignee | Avatars, pinned right. Multi-select |
Every multi-select is OR within itself and AND across controls — two priorities selected means either priority; a priority plus a type means both must match.
It matches assignee or creator, so a task you raised and handed to someone else stays visible. That is usually what people want and occasionally surprising.
Step 3 · Clear
Clear appears once any assignee, priority or type is selected, or My Tasks is on. It resets assignees, priorities, types, categories, the milestone tab and My Tasks — and returns to page 1.
Search, Hide Done, Hide Subtasks and Billing survive a Clear. If the board still looks wrong afterwards, those four are where to look.
Step 4 · The category rail
The rail on the left is a filter in its own right, and more:
| Action | Effect |
|---|---|
| Click a category | Filters to it. Multi-select |
| Clear Filter at the foot | Deselects all categories |
| Search box | Filters the rail itself. No match: "No categories match "…"." |
| + on a row | Creates a task already in that category |
| Drag tasks onto a row | Moves them — and every one of their subtasks — into that category |
| Collapse | Narrows the rail to icons with tooltips |
Empty, the rail reads "No categories defined for this project."
The move walks down the hierarchy: selected tasks and all descendants are re-categorised, and a
toast reports the real count — Moved 12 task(s) to category when you dragged three.
There is no confirmation step and no undo.
Step 5 · Milestone tabs
All Timelines plus one tab per milestone. Selecting one is a server-side filter and resets to page
- Only one tab at a time.
Step 6 · Build a filter from conditions
The bar above covers the questions people ask every day. Filters, beside the search box, answers the rest: high or urgent work that is already overdue, tasks worth more than 50,000 with no assignee, anything created this week that nobody has estimated.
- Click Filters, then Add condition.
- Choose a field, then how to compare it, then the value.
- Add more conditions. A task is listed only when it meets all of them.
Each row applies as soon as it is complete. A half-built row stays on screen with "Not applied yet — finish the value" and changes nothing until you finish it. The panel's header shows how many tasks match, and a line under the search box reads the filter back in words — Priority is one of High, Urgent · Due date before today · 8 matching tasks — with Save view and Clear filter beside it.
| Kind of field | Fields | How it compares |
|---|---|---|
| A choice from a list | Status, Priority, Type, Assignee, Category, Milestone, Created by | is one of · is not one of. Assignee, Category and Milestone also offer is empty · is not empty |
| A date | Due date, Start date, Created, Updated, Completed | before · after · on · is empty · is not empty |
| A number | Estimate, Remaining, Logged (all in hours), Points, Progress (%), Value | equals · more than · at least · less than · at most · is empty · is not empty |
| Text | Summary, Key | contains · does not contain |
| Tags | Tags | has any of · has none of · is empty · is not empty |
| Yes or no | Billable | is |
Value is offered only in a project that puts a value on its tasks.
A date can be a day on the calendar, or one that moves: Today, Yesterday, Tomorrow, 7 days ago, In 7 days, 30 days ago, In 30 days. Due date before Today still means overdue next week; the same filter built with a fixed date quietly stops meaning it.
Category is not one of Design lists every task outside Design — including tasks with no category at all. Add Category is not empty if you want only categorised tasks.
Filters works in the List and Table views. Kanban and Calendar are not narrowed by it and do not show the button; switching to them and back keeps your conditions.
Step 7 · Save it as a view
- With the filter on screen, click Save view (under the search box) or open Views.
- Type a name and click Save.
Views lists what you have saved in this project. Choosing one applies its conditions at once, and the button then shows the view's name. If you change the conditions of the view you are on, Views offers Update "…" with this filter. The bin icon beside a view deletes it, after you confirm.
| Saved views are… | Meaning |
|---|---|
| Personal | Nobody else sees yours, and you do not see theirs |
| Per project | Each project has its own list — a view names that project's statuses and categories |
| Conditions only | Columns are chosen separately — see Table view |
Two of your views in one project cannot share a name. A view whose condition names something since removed — a deleted category, say — still applies; that condition simply matches nothing.
4. Field reference — where each filter runs
| Filter | Server | Client | Resets page |
|---|---|---|---|
| Search | ✅ | ✅ | |
| Filters (conditions) and saved views | ✅ | ✅ | |
| Assignee | ✅ | also re-applied | |
| Priority | ✅ | also re-applied | |
| Type | ✅ | also re-applied | |
| Category | ✅ | ||
| My Tasks | ✅ | also re-applied | ✅ |
| Milestone | ✅ | ✅ | |
| Billing | ✅ | ✅ | |
| Hide Done | ✅ only | ||
| Hide Subtasks | ✅ only |
They are applied after the page arrives. On a project with more than 50 matching tasks the result is a page that has been thinned rather than a filtered query — the next page will contain done tasks again.
This is a real divergence, not a rounding error:
| View | How "done" is decided |
|---|---|
| Kanban | By the status's category — anything in Done is hidden. Falls back to the ids done and cancelled when a status has no category |
| List and Table | By hard-coded status id only — done, completed, cancelled |
So a custom status named Closed, correctly filed under the Done category, is hidden on the
Kanban board and still visible in the list. Tick Hide Done, switch view, and the count changes.
If you use custom status ids, Kanban is the view that respects your configuration.
Where each filter's values come from
| Filter | Source |
|---|---|
| Priority circles | Project priority configuration |
| Type circles | Project type configuration |
| Category rail | Project task categories |
| Assignee avatars | Project members |
| Milestone tabs | Project milestones |
How the bar adapts to width
It measures itself and collapses in four stages rather than wrapping:
| Width | Behaviour |
|---|---|
| Wide | Full labels; priority and type circles inline |
| Below ~1180px | Toggles become icon-only, labels move into tooltips |
| Below ~820px | Priority and Type fold into dropdown popovers |
| Below ~600px | Group, My Tasks, Subtasks, Done and Billing fold into one Filters menu |
Assignee avatars and Clear stay pinned right throughout.
Full screen covers the left rail, so the bar grows a category control to compensate. In normal layout, categories are filtered from the rail.
5. The admin contract
| Prerequisite | Effect if absent |
|---|---|
| Priorities configured | No priority circles |
| Types configured | No type circles |
| Categories configured | Empty rail; no category grouping |
| Milestones | Only the All Timelines tab |
| Project members | No assignee avatars |
6. Downstream
Filters are not persisted — not in the URL, not in storage. Reloading the page, or opening the
link somewhere else, starts from the default state: no grouping, no filters, All Timelines,
Billing: All.
7. Don't confuse this with…
| Thing | Where | Why it is different |
|---|---|---|
| Group by | The bar | Rearranges rows |
| Filters | The bar | Removes rows |
| Category rail | Left | A filter, a drop target, and a create shortcut |
| Milestone tabs | Above the board | One at a time; the bar's controls are multi-select |
| Sort | The header | A button that is present but performs no sorting |
| My Tasks page | /org/my-tasks | A different screen; the My Tasks toggle here only filters this board |
There is a Sort button beside the view switcher with no behaviour attached — clicking it has no effect. Order comes from grouping and the server's default ordering.
8. Troubleshooting
| Symptom | Cause |
|---|---|
| A task vanished | Check the category rail and the milestone tab — both are easy to leave set |
| Hide Done left done tasks visible | Their status id is not done/completed/cancelled |
| Counts look wrong after Hide Done | It filters the fetched page only |
| Clear did not restore everything | Search, Hide Done, Hide Subtasks and Billing survive Clear |
| Tag groups add up to more than the task count | Tag grouping repeats a task per tag |
| Dragging to a category moved more than I selected | Subtasks come along |
| Filters lost on reload | Filter state is not persisted |
| Sort does nothing | It has no behaviour |
Related
- List view · Kanban · Table
- Bulk actions — what to do with a selection
- Categories