if limit:
limit_str = ' limit %(limit)s'
query_args['limit'] = limit
+ # TODO: simplify this in trunk with _rec_name='display_name', once display_name
+ # becomes a stored field
cr.execute('''SELECT partner.id FROM res_partner partner
LEFT JOIN res_partner company ON partner.parent_id = company.id
- WHERE partner.email ''' + operator +''' %(name)s
- OR partner.name || ' (' || COALESCE(company.name,'') || ')'
+ WHERE partner.email ''' + operator +''' %(name)s OR
+ CASE WHEN company.id IS NULL OR partner.is_company
+ THEN partner.name
+ ELSE
+ company.name || ', ' || partner.name
+ END
''' + operator + ' %(name)s ' + limit_str, query_args)
ids = map(lambda x: x[0], cr.fetchall())
ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)