[FIX] expression: the <> can be part of leaves (before normalization).
bzr revid: vmt@openerp.com-20110810092859-mzp9nmo81azxtq8s
This commit is contained in:
parent
44b3499a73
commit
a32476c6d9
|
@ -109,11 +109,11 @@ def is_operator(element):
|
||||||
|
|
||||||
# TODO change the share wizard to use this function.
|
# TODO change the share wizard to use this function.
|
||||||
def is_leaf(element, internal=False):
|
def is_leaf(element, internal=False):
|
||||||
INTERNAL_OPS = OPS + ('inselect', '<>')
|
INTERNAL_OPS = OPS + ('inselect',)
|
||||||
return (isinstance(element, tuple) or isinstance(element, list)) \
|
return (isinstance(element, tuple) or isinstance(element, list)) \
|
||||||
and len(element) == 3 \
|
and len(element) == 3 \
|
||||||
and (((not internal) and element[1] in OPS) \
|
and (((not internal) and element[1] in OPS + ('<>',)) \
|
||||||
or (internal and element[1] in INTERNAL_OPS))
|
or (internal and element[1] in INTERNAL_OPS + ('<>',)))
|
||||||
|
|
||||||
def normalize_operator(operator):
|
def normalize_operator(operator):
|
||||||
operator = operator.lower()
|
operator = operator.lower()
|
||||||
|
@ -515,7 +515,7 @@ class expression(object):
|
||||||
query = '(%s.%s IS NULL or %s.%s = false )' % (table._table, left, table._table, left)
|
query = '(%s.%s IS NULL or %s.%s = false )' % (table._table, left, table._table, left)
|
||||||
params = []
|
params = []
|
||||||
|
|
||||||
elif (((right == False) and (type(right)==bool)) or (right is None)) and (operator == '='):
|
elif (right is False or right is None) and (operator == '='):
|
||||||
query = '%s.%s IS NULL ' % (table._table, left)
|
query = '%s.%s IS NULL ' % (table._table, left)
|
||||||
params = []
|
params = []
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ class expression(object):
|
||||||
query = '(%s.%s IS NOT NULL and %s.%s != false)' % (table._table, left, table._table, left)
|
query = '(%s.%s IS NOT NULL and %s.%s != false)' % (table._table, left, table._table, left)
|
||||||
params = []
|
params = []
|
||||||
|
|
||||||
elif (((right == False) and (type(right)==bool)) or right is None) and (operator == '!='):
|
elif (right is False or right is None) and (operator == '!='):
|
||||||
query = '%s.%s IS NOT NULL' % (table._table, left)
|
query = '%s.%s IS NOT NULL' % (table._table, left)
|
||||||
params = []
|
params = []
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue