Skip to content

Operators

A filter’s Operation says how the column is compared with the value. The builder only lists the operations that suit the column’s type, sorted A to Z. This page lists the ones the app ships with.

Values is how many values the operation takes: 0 means the builder hides the value fields and a viewer’s pick has nothing to fill; 2 means a from and a to value.

For Char, Text and Selection columns.

Operation Values Keeps rows where the column…
Is equal to 1 equals the value exactly
Is not equal to 1 is anything else
Is in list 1 or more equals one of the values
Is not in list 1 or more equals none of the values
Contains 1 contains the text, ignoring upper and lower case
Does not contain 1 doesn’t contain the text, ignoring case
Starts with 1 starts with the text, ignoring case
Ends with 1 ends with the text, ignoring case
Is empty 0 has no value
Is not empty 0 has a value

Is equal to and Is in list compare exactly, case included: Sales Order doesn’t match sales order. For pick lists that viewers use, choose Is in list or Is equal to (see Things to know).

For Integer, Float and Monetary columns, and for relational columns (Many2one, Many2many, One2many), which are compared by the record’s id.

Operation Values Keeps rows where the column…
Is equal to / Is not equal to 1 equals / doesn’t equal the number
Is greater than / Is greater than or equal to 1 is above / at least the number
Is less than / Is less than or equal to 1 is below / at most the number
Is between / Is not between 2 is / isn’t between the two numbers, both included
Is in list / Is not in list 1 or more is / isn’t one of the numbers
Is empty / Is not empty 0 has no value / has a value

A value that isn’t a number stops the widget with Filter value ‘…’ is not a valid number for a … field.

For Boolean columns: Is true, Is false, Is empty and Is not empty. None takes a value.

Operation Values Keeps rows where the date…
Is on / Is not on 1 is / isn’t that day
Is after / Is on or after 1 is later than / on or later than the date
Is before / Is on or before 1 is earlier than / on or earlier than the date
Is between / Is not between 2 is / isn’t between the two dates, both included
Is up to range end 2 is on or before the second date: all history up to the end of the range
Is empty / Is not empty 0 has no value / has a value
Is today 0 is today
Before today / After today 0 is before / after today (on date columns, today itself is left out)
This week / This month / This quarter / This year 0 falls in the current calendar week (starting Monday), month, quarter or year
Year to date 0 is between 1 January this year and today
Last 7 days / Last 30 days / Last 90 days / Last 365 days 0 is on or after today minus that many days, with no end date
Total Till Date (TTD) 0 is today or earlier

Is up to range end is meant for date filters with Strictly Follow Operator ticked, where a picked period becomes “everything up to the end of the period”. See Date filters.

Operations that take no value (Is today, This month, Year to date, Last 30 days and the rest) are worked out against the database’s current date each time the widget loads. A dashboard left open overnight shows the new day after a Refresh.

The Last N days operations have no upper limit, so rows dated in the future, such as planned deliveries, are included.

Every list also offers operations prefixed [Deprecated], such as [Deprecated] Is equal to or [Deprecated] Contains. They exist so that older dashboards keep working. Don’t pick them for new filters: some don’t do what their name says ([Deprecated] Contains matches whole values, like Is in list), and they’re offered on column types they don’t suit.

Operations are records under Odoo Dashboards → Configurations → Custom Operations → Where Operations. Each has an Operation name, a SQL Formula in which {f1} stands for the column, {f2} for the first value and {f3} for the second, and the Field Type it’s offered for.

Operations added there, by an administrator or by the AI features when a plan needs a new date window, appear in the builder’s list next to the ones above. Change the shipped ones only if you understand the formula: every filter that uses an operation changes with it.