summaryrefslogtreecommitdiff
path: root/addons/website/models/website.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/models/website.py')
-rw-r--r--addons/website/models/website.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index 106aee8b208..40c1ce0ae6e 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -85,7 +85,11 @@ class Website(models.Model):
@api.multi
def write(self, values):
self._get_languages.clear_cache(self)
- return super(Website, self).write(values)
+ result = super(Website, self).write(values)
+ if 'cdn_activated' in values or 'cdn_url' in values or 'cdn_filters' in values:
+ # invalidate the caches from static node at compile time
+ self.env['ir.qweb'].clear_caches()
+ return result
#----------------------------------------------------------
# Page Management
@@ -563,15 +567,15 @@ class Website(models.Model):
size = '' if size is None else '/%s' % size
return '/web/image/%s/%s/%s%s?unique=%s' % (record._name, record.id, field, size, sha)
- @api.model
def get_cdn_url(self, uri):
- # Currently only usable in a website_enable request context
- if request and request.website and not request.debug and request.website.user_id.id == request.uid:
- cdn_url = request.website.cdn_url
- cdn_filters = (request.website.cdn_filters or '').splitlines()
- for flt in cdn_filters:
- if flt and re.match(flt, uri):
- return urls.url_join(cdn_url, uri)
+ self.ensure_one()
+ if not uri:
+ return ''
+ cdn_url = self.cdn_url
+ cdn_filters = (self.cdn_filters or '').splitlines()
+ for flt in cdn_filters:
+ if flt and re.match(flt, uri):
+ return urls.url_join(cdn_url, uri)
return uri
@api.model