Merge lp:~cmsa/openobject-server/openobject-server into lp:openobject-server

Proposed by Carlos Almeida
Status: Needs review
Proposed branch: lp:~cmsa/openobject-server/openobject-server
Merge into: lp:openobject-server
Diff against target: 24 lines (+10/-4)
1 file modified
openerp/addons/base/res/res_partner.py (+10/-4)
To merge this branch: bzr merge lp:~cmsa/openobject-server/openobject-server
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+180725@code.launchpad.net

Description of the change

Corrected the res_partner name_search function to use unaccent, if it is installed and activated in database.
Very important and used daily in latin countries.

To post a comment you must log in.

Unmerged revisions

4937. By Carlos Almeida

[FIX] Use unaccent in res_partner name_search function, if it is installed and activated in database.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openerp/addons/base/res/res_partner.py'
2--- openerp/addons/base/res/res_partner.py 2013-06-13 17:39:00 +0000
3+++ openerp/addons/base/res/res_partner.py 2013-08-18 03:26:15 +0000
4@@ -606,10 +606,16 @@
5 if limit:
6 limit_str = ' limit %(limit)s'
7 query_args['limit'] = limit
8- cr.execute('''SELECT partner.id FROM res_partner partner
9- LEFT JOIN res_partner company ON partner.parent_id = company.id
10- WHERE partner.email ''' + operator +''' %(name)s OR
11- partner.display_name ''' + operator + ' %(name)s ' + limit_str, query_args)
12+ if openerp.modules.registry.RegistryManager.get(cr.dbname).has_unaccent:
13+ cr.execute('''SELECT partner.id FROM res_partner partner
14+ LEFT JOIN res_partner company ON partner.parent_id = company.id
15+ WHERE partner.email ''' + operator +''' %(name)s OR
16+ unaccent(partner.display_name) ''' + operator + ' %(name)s ' + limit_str, query_args)
17+ else:
18+ cr.execute('''SELECT partner.id FROM res_partner partner
19+ LEFT JOIN res_partner company ON partner.parent_id = company.id
20+ WHERE partner.email ''' + operator +''' %(name)s OR
21+ partner.display_name ''' + operator + ' %(name)s ' + limit_str, query_args)
22 ids = map(lambda x: x[0], cr.fetchall())
23 ids = self.search(cr, uid, [('id', 'in', ids)] + args, limit=limit, context=context)
24 if ids: