[MERGE] forward port of branch 8.0 up to ed1c173
[odoo/odoo.git] / addons / website / models / ir_http.py
index db41719..cd0e591 100644 (file)
@@ -107,6 +107,8 @@ class ir_http(orm.AbstractModel):
                         request.lang = request.website.default_lang_code
 
             request.context['lang'] = request.lang
+            if not request.context.get('tz'):
+                request.context['tz'] = request.session['geoip'].get('time_zone')
             if not func:
                 if path[1] in langs:
                     request.lang = request.context['lang'] = path.pop(1)
@@ -208,7 +210,14 @@ class ir_http(orm.AbstractModel):
                 exception=exception,
                 traceback=traceback.format_exc(exception),
             )
-            code = getattr(exception, 'code', code)
+
+            if isinstance(exception, werkzeug.exceptions.HTTPException):
+                if exception.code is None:
+                    # Hand-crafted HTTPException likely coming from abort(),
+                    # usually for a redirect response -> return it directly
+                    return exception
+                else:
+                    code = exception.code
 
             if isinstance(exception, openerp.exceptions.AccessError):
                 code = 403
@@ -218,11 +227,6 @@ class ir_http(orm.AbstractModel):
                 if isinstance(exception.qweb.get('cause'), openerp.exceptions.AccessError):
                     code = 403
 
-            if isinstance(exception, werkzeug.exceptions.HTTPException) and code is None:
-                # Hand-crafted HTTPException likely coming from abort(),
-                # usually for a redirect response -> return it directly
-                return exception
-
             if code == 500:
                 logger.error("500 Internal Server Error:\n\n%s", values['traceback'])
                 if 'qweb_exception' in values: