From 35bb18f686381a9c87926cfcc5516740db9b9ccb Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 6 Feb 2015 13:40:02 +0100 Subject: [PATCH 1/2] [IMP] support != operator --- partner_relations/model/res_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/partner_relations/model/res_partner.py b/partner_relations/model/res_partner.py index ff307b36e..4a29cc63d 100644 --- a/partner_relations/model/res_partner.py +++ b/partner_relations/model/res_partner.py @@ -89,7 +89,7 @@ class ResPartner(orm.Model): result = [] for arg in args: if isinstance(arg, tuple) and arg[0] == name: - if arg[1] not in ['=', 'like', 'not like', 'ilike', + if arg[1] not in ['=', '!=', 'like', 'not like', 'ilike', 'not ilike', 'in', 'not in']: raise orm.except_orm( _('Error'), From 55d664c7575a2bfc712427aa6460930b9af7ac44 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 6 Feb 2015 13:58:54 +0100 Subject: [PATCH 2/2] [FIX] actually do something useful with != --- partner_relations/model/res_partner.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/partner_relations/model/res_partner.py b/partner_relations/model/res_partner.py index 4a29cc63d..369fd52ad 100644 --- a/partner_relations/model/res_partner.py +++ b/partner_relations/model/res_partner.py @@ -101,6 +101,17 @@ class ResPartner(orm.Model): if arg[1] == '=' and isinstance(arg[2], (long, int)): relation_type_selection_ids.append(arg[2]) + elif arg[1] == '!=' and isinstance(arg[2], (long, int)): + type_id, is_inverse = relation_type_selection\ + .get_type_from_selection_id( + cr, uid, arg[2]) + result = OR([ + result, + [ + ('relation_all_ids.type_id', '!=', type_id), + ] + ]) + continue else: relation_type_selection_ids = relation_type_selection\ .search(