Operatori logici su domini di ricerca python per Odoo

OpenERP/Odoo utilizza la ‘polish notation’ per i filtri di dominio:

http://en.wikipedia.org/wiki/Polish_notation

Combinare correttamente gli operatori può essere un’impresa!

Come ben spiegato in questo post sul forum Odoo è necessario capire la logica della notazione in questione:

Esempio:

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

diventa:

AND OR A B OR OR C D E

Che praticamente rappresenta l’ordine seguente da sinistra a destra:

AND [OR A B] OR OR C D E         Result of [OR A B] is F

AND F OR [OR C D] E              Result of [OR C D] is G

AND F [OR G E]                   Result of [OR G E] is H

[AND F H]

Nel caso dell’operatore IN si può fare così:

['&',('field2', 'in', ['A', 'B']),('state', 'in', ['open', 'closed', 'draft'])]

In Odoo si possono vedere diversi esempi in:

Settings > Actions > Window Actions (technical features should be on)