From 27f38edb258a6f327c90863f16397126cc269c9b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 25 Mar 2014 11:07:22 +0100 Subject: [PATCH] [FIX] dirty saas-3 fix for url lang switching with model converters bzr revid: fme@openerp.com-20140325100722-temaci88fowcr2m5 --- addons/website/models/ir_http.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index 46b9efc15a8..696734b5f05 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -65,7 +65,7 @@ class ir_http(orm.AbstractModel): def reroute(self, path): if not hasattr(request, 'rerouting'): - request.rerouting = [] + request.rerouting = [request.httprequest.path] if path in request.rerouting: raise Exception("Rerouting loop is forbidden") request.rerouting.append(path) @@ -79,7 +79,11 @@ class ir_http(orm.AbstractModel): return self._dispatch() def _postprocess_args(self, arguments): - url = request.httprequest.url + if hasattr(request, 'rerouting'): + url = request.rerouting[0] + else: + url = request.httprequest.url + original_url = url for arg in arguments.itervalues(): if isinstance(arg, orm.browse_record) and isinstance(arg._uid, RequestUID): placeholder = arg._uid @@ -91,7 +95,7 @@ class ir_http(orm.AbstractModel): url = url.replace(placeholder.value, good_slug) except KeyError: return self._handle_exception(werkzeug.exceptions.NotFound()) - if url != request.httprequest.url: + if url != original_url: werkzeug.exceptions.abort(werkzeug.utils.redirect(url)) def _handle_exception(self, exception=None, code=500):