[FIX] Fix url slug check bug in multilang=True
authorFabien Meghazi <fme@openerp.com>
Tue, 25 Mar 2014 14:00:26 +0000 (15:00 +0100)
committerFabien Meghazi <fme@openerp.com>
Tue, 25 Mar 2014 14:00:26 +0000 (15:00 +0100)
bzr revid: fme@openerp.com-20140325140026-0qdx9zl21za8gto9

addons/website/models/ir_http.py

index 1833ce1..c0a9e20 100644 (file)
@@ -91,7 +91,12 @@ class ir_http(orm.AbstractModel):
             assert path is not None
         except Exception:
             return self._handle_exception(werkzeug.exceptions.NotFound())
-        if path != werkzeug.url_quote(request.httprequest.path):
+
+        generated_path = werkzeug.url_unquote_plus(path)
+        current_path = werkzeug.url_unquote_plus(request.httprequest.path)
+        if generated_path != current_path:
+            if request.lang != request.website.default_lang_code:
+                path = '/' + request.lang + path
             return werkzeug.utils.redirect(path)
 
     def _handle_exception(self, exception=None, code=500):