← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~yann-papouin/ocb-server/7.0-bug-1049653-translatable-unaccent into lp:ocb-server

 

Yann Papouin has proposed merging lp:~yann-papouin/ocb-server/7.0-bug-1049653-translatable-unaccent into lp:ocb-server.

Requested reviews:
  OpenERP Community Backports Team (ocb)
Related bugs:
  Bug #1049653 in OpenERP Community Backports (Server): "--unaccent option does not work"
  https://bugs.launchpad.net/ocb-server/+bug/1049653

For more details, see:
https://code.launchpad.net/~yann-papouin/ocb-server/7.0-bug-1049653-translatable-unaccent/+merge/210165

Automatically derived from https://code.launchpad.net/~yann-papouin/openobject-server/7.0-bug-1049653-translatable-unaccent for https://code.launchpad.net/~openerp/openobject-server/7.0.
-- 
https://code.launchpad.net/~yann-papouin/ocb-server/7.0-bug-1049653-translatable-unaccent/+merge/210165
Your team OpenERP Community Backports Team is requested to review the proposed merge of lp:~yann-papouin/ocb-server/7.0-bug-1049653-translatable-unaccent into lp:ocb-server.
=== modified file 'openerp/osv/expression.py'
--- openerp/osv/expression.py	2014-02-06 08:47:08 +0000
+++ openerp/osv/expression.py	2014-03-10 10:02:31 +0000
@@ -1046,11 +1046,18 @@
                              '    FROM "' + working_model._table + '"'       \
                              '   WHERE "' + left + '" ' + sql_operator + ' ' + " (" + instr + "))"
                     else:
-                        subselect += '     AND value ' + sql_operator + instr +   \
-                             ') UNION ('                \
-                             '  SELECT id'              \
-                             '    FROM "' + working_model._table + '"'       \
-                             '   WHERE "' + left + '" ' + sql_operator + instr + ")"
+                        if self.has_unaccent and sql_operator in ('ilike', 'not ilike'):
+                            subselect += '     AND unaccent(value) ' + sql_operator + ' unaccent(' + instr +   \
+                                 ')) UNION ('                \
+                                 '  SELECT id'              \
+                                 '    FROM "' + working_model._table + '"'       \
+                                 '   WHERE unaccent("' + left + '") ' + sql_operator + ' unaccent(' + instr + '))'
+                        else:
+                            subselect += '     AND value ' + sql_operator + instr +   \
+                                 ') UNION ('                \
+                                 '  SELECT id'              \
+                                 '    FROM "' + working_model._table + '"'       \
+                                 '   WHERE "' + left + '" ' + sql_operator + instr + ")"
 
                     params = [working_model._name + ',' + left,
                               context.get('lang', False) or 'en_US',


Follow ups