diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index 2668e5008d6..f636483864e 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -90,6 +90,9 @@ class ir_http(orm.AbstractModel): record = self._geoip_resolver.record_by_addr(request.httprequest.remote_addr) or {} request.session['geoip'] = record + def get_page_key(self): + return (self._name, "cache", request.uid, request.lang, request.httprequest.full_path) + def _dispatch(self): first_pass = not hasattr(request, 'website') request.website = None @@ -168,7 +171,7 @@ class ir_http(orm.AbstractModel): cache_enable = cache_time and request.httprequest.method == "GET" and request.website.user_id.id == request.uid cache_response = None if cache_enable: - key = (self._name, "cache", request.uid, request.lang, request.httprequest.full_path) + key = self.get_page_key() try: r = self.pool.cache[key] if r['time'] + cache_time > time.time(): diff --git a/addons/website_version/models/ir_http.py b/addons/website_version/models/ir_http.py index 22b84b578b3..a8414a5a2f7 100644 --- a/addons/website_version/models/ir_http.py +++ b/addons/website_version/models/ir_http.py @@ -14,3 +14,8 @@ class ir_http(orm.AbstractModel): x.set_cookie('website_version_experiment', data) return x + def get_page_key(self): + key = super(ir_http, self).get_page_key() + seq_ver = [int(ver) for ver in request.context.get('website_version_experiment', {}).values()] + key += (str(sorted(seq_ver)),) + return key