[MERGE] Forward-port 7.0 up to 4de3f4c4ba
This commit is contained in:
commit
bc26a49194
|
@ -423,11 +423,19 @@
|
||||||
u1b = res_users.create(cr, uid, {'login': 'dbo2', 'partner_id': p1})
|
u1b = res_users.create(cr, uid, {'login': 'dbo2', 'partner_id': p1})
|
||||||
u2 = res_users.create(cr, uid, {'login': 'rpo', 'partner_id': p2})
|
u2 = res_users.create(cr, uid, {'login': 'rpo', 'partner_id': p2})
|
||||||
assert [p1] == res_partner.search(cr, uid, [('user_ids', 'in', u1a)]), "o2m IN accept single int on right side"
|
assert [p1] == res_partner.search(cr, uid, [('user_ids', 'in', u1a)]), "o2m IN accept single int on right side"
|
||||||
|
assert [p1] == res_partner.search(cr, uid, [('user_ids', '=', 'Dédé Boitaclou')]), "o2m NOT IN matches none on the right side"
|
||||||
|
assert [] == res_partner.search(cr, uid, [('user_ids', 'in', [10000])]), "o2m NOT IN matches none on the right side"
|
||||||
assert [p1,p2] == res_partner.search(cr, uid, [('user_ids', 'in', [u1a,u2])]), "o2m IN matches any on the right side"
|
assert [p1,p2] == res_partner.search(cr, uid, [('user_ids', 'in', [u1a,u2])]), "o2m IN matches any on the right side"
|
||||||
all_partners = res_partner.search(cr, uid, [])
|
all_partners = res_partner.search(cr, uid, [])
|
||||||
assert (set(all_partners) - set([p1])) == set(res_partner.search(cr, uid, [('user_ids', 'not in', u1a)])), "o2m NOT IN matches none on the right side"
|
assert (set(all_partners) - set([p1])) == set(res_partner.search(cr, uid, [('user_ids', 'not in', u1a)])), "o2m NOT IN matches none on the right side"
|
||||||
|
# For 9.0: assert (set(all_partners) - set([p1])) == set(res_partner.search(cr, uid, [('user_ids', '!=', 'Dédé Boitaclou')])), "o2m NOT IN matches none on the right side"
|
||||||
assert (set(all_partners) - set([p1,p2])) == set(res_partner.search(cr, uid, [('user_ids', 'not in', [u1b, u2])])), "o2m NOT IN matches none on the right side"
|
assert (set(all_partners) - set([p1,p2])) == set(res_partner.search(cr, uid, [('user_ids', 'not in', [u1b, u2])])), "o2m NOT IN matches none on the right side"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# child_of x returns x and its children (direct or not).
|
# child_of x returns x and its children (direct or not).
|
||||||
company = self.browse(cr, uid, ref('ymltest_company3'))
|
company = self.browse(cr, uid, ref('ymltest_company3'))
|
||||||
expected = [ref('ymltest_company3'), ref('ymltest_company4')]
|
expected = [ref('ymltest_company3'), ref('ymltest_company4')]
|
||||||
|
|
|
@ -974,6 +974,10 @@ class expression(object):
|
||||||
call_null = False
|
call_null = False
|
||||||
o2m_op = 'not in' if operator in NEGATIVE_TERM_OPERATORS else 'in'
|
o2m_op = 'not in' if operator in NEGATIVE_TERM_OPERATORS else 'in'
|
||||||
push(create_substitution_leaf(leaf, ('id', o2m_op, ids1), model))
|
push(create_substitution_leaf(leaf, ('id', o2m_op, ids1), model))
|
||||||
|
elif operator in ('like', 'ilike', 'in', '='):
|
||||||
|
# no match found with positive search operator => no result (FALSE_LEAF)
|
||||||
|
call_null = False
|
||||||
|
push(create_substitution_leaf(leaf, FALSE_LEAF, model))
|
||||||
|
|
||||||
if call_null:
|
if call_null:
|
||||||
o2m_op = 'in' if operator in NEGATIVE_TERM_OPERATORS else 'not in'
|
o2m_op = 'in' if operator in NEGATIVE_TERM_OPERATORS else 'not in'
|
||||||
|
|
Loading…
Reference in New Issue