Search code examples
pythonxmlodooopenerp-7

Multiple condition in domain is not working - OpenERP 7 - Odoo


I am trying to use multiple condition for my domain but I got this error:

ValueError: Invalid leaf ('&', ('A', '=', True), ('B', '=', False)

I have no idea why. Everything looks well. I would like to have (A & !B) OR (C & !D )

This is my code (OpenERP 7):

        <field name="domain">['|',('&amp;',('A','=', True),('B','=', False)),('&amp;',('C','!=', True),('D','=', False))]</field>

What is wrong with my code? Some idea?


Solution

  • You're using extra brackets. Prefix Notation (AKA Polish notation) is all about discarding necessity of brackets. You should use proper "prefix notation" in condition statement. In order to correct a syntax, we have to remove extra brackets, so the above posted condition becomes ['|','&amp;',('A','=', True),('B','=', False),'&amp;',('C','!=', True),('D','=', False)]. It'll solve the Invalid leaf error. See also my answer to the similar question.