Odoo Domain notation using multiple and nested '|' and '&'

Here are steps on how to compose Odoo domain with complex/ nested conditions:

Step 1

Start with the outermost operator and move it to the start of the expression.

"(A operator B)"  becomes  "operator (A B)"

Step 2

Repeat step 1 for each sub expression with an operator to move.

"A operator (B operator C)"  becomes  "operator A (B operator C)"  then "operator A (operator B C)"

Step 3

Remove all brackets.

"A operator (B operator C)"  becomes  "operator A operator B C"

Example

So for my example:

( A or B ) AND ( C or D or E )

First simplification:

AND ( A or B ) ( C or D or E )

left side

AND ( or A B ) ( C or D or E )

right side outer

AND ( or A B ) ( or C ( D or E ) )

right side inner

AND ( or A B ) ( or C ( or D E ) )

remove brackets

AND or A B or C or D E

In Odoo domain syntax this would be:

[ '&', '|', (A), (B), '|', (C), '|', (D), (E) ]


This are topics we discuss in Odoo Technical Training by vitraining.com. For more information about schedules please click shop.vitraining.com/event.