diff options
Diffstat (limited to 'addons/website/models/website.py')
| -rw-r--r-- | addons/website/models/website.py | 22 |
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 |
