Description
Problem
Our filters can do and & or but not a combination of both:
For example, it's not possible to show cards that are (not yet done) or (done and has been modified recently).
The go-to workaround is to create an auxiliary Checkbox Formula and filter based on it but this clutters the workspace. The Formula approach is also rarely discoverable without our help.
Solution
Eventually, any filter should be possible with Filter, sort, and color-code using formula (ad-hoc calculation). However, writing a Formula is a more advanced power user skill compared to setting up a View. Thus, it's great to have a UI-only way for the most popular scenario.
We allow groups of filters with an arbitrary combination of and & or operators, similar to Notion:
Terms: Filter rule + Filter group.
☝️ Before Generalize context filters into dynamic values, context filters serve like a hard-coded group joined with others using and operator.
Affected places:
View filters
View color coding
Smart Folder setup
Automation trigger filters
Report source filters
Filter and sort in relation Field selector
Whiteboard tree view setup
(only if it's for ~free)
Audit log filters
(audit log uses own query language with own filters and there is no support for OR at all)
Behavior
🦄 Drag'n'drop is nice to have
Automatically set Field values based on Rules: try the simplest heuristic to make sure a newly created card doesn't disappear
When a filter rule is broken (ex. Field is deleted), we ignore this specific rule
Export as a Template:
References
Notion
https://www.notion.so/help/guides/using-advanced-database-filters
Airtable
https://support.airtable.com/docs/advanced-filtering-using-conditions
You can nest condition groups for a maximum depth of three levels
Other
Solution - v1
[???]Simplified prototype
Action menu for the filter item:
Remove - Filter or Filter Group
Duplicate - Filter of Filter Group (do we need it?)
Turn into Group - for an existing Filter if the nested limit isn't violated
Ungroup (Turn into Filter) - for an existing Filter Group
Wrap in a Filter Group - for an existing Filter Group if the nested limit isn't violated
[???]
Figma link
[???]
Next steps (Solution v2)