From 03b62d9b21283d21dcef7c4e89856e2cfef58585 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Tue, 17 Apr 2012 12:18:10 +0200 Subject: [PATCH] [FIX] base: name_search of res_partner can now handle properly when limit=None is passed bzr revid: qdp-launchpad@openerp.com-20120417101810-wwijmbp06aflcebs --- openerp/addons/base/res/res_partner.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index c8065403148..bcbeb0f3d99 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -307,10 +307,15 @@ class res_partner(osv.osv): if name and operator in ('=', 'ilike', '=ilike', 'like'): # search on the name of the contacts and of its company name2 = operator == '=' and name or '%' + name + '%' + limit_str = '' + query_args = [name2] + if limit: + limit_str = ' limit %s' + query_args += [limit] cr.execute('''SELECT partner.id FROM res_partner partner LEFT JOIN res_partner company ON partner.parent_id = company.id WHERE partner.name || ' (' || COALESCE(company.name,'') || ')' - ''' + operator + ''' %s limit '''+str(limit), (name2,)) + ''' + operator + ''' %s ''' + limit_str, query_args) ids = map(lambda x: x[0], cr.fetchall()) if args: ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)