From e7ef57f6879eee4808acd4af899ba3a285e2950b Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Tue, 17 Mar 2020 14:02:35 +0000 Subject: [PATCH] [FIX] website_blog, website_event: prevent wrong meta og:image URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without this commit, if the cover properties's background-image contains single quotes in the `url()`, that will lead to 404 image in SEO dialog. It will also lead to wrong og:image in the DOM. Before: `` Now: `` This is the case for all our demo data. closes odoo/odoo#47994 X-original-commit: 2338f8ecc8c21299774e288ab07bb084a58cc7ab Signed-off-by: Jérémy Kersten (jke) Signed-off-by: Romain Derie --- addons/website_blog/models/website_blog.py | 3 ++- addons/website_event/models/event_event.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py index 6461b5f7aff..1ca1c00b64d 100644 --- a/addons/website_blog/models/website_blog.py +++ b/addons/website_blog/models/website_blog.py @@ -258,7 +258,8 @@ class BlogPost(models.Model): res['default_opengraph']['article:published_time'] = self.post_date res['default_opengraph']['article:modified_time'] = self.write_date res['default_opengraph']['article:tag'] = self.tag_ids.mapped('name') - res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = json.loads(self.cover_properties).get('background-image', 'none')[4:-1] + # background-image might contain single quotes eg `url('/my/url')` + res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = json.loads(self.cover_properties).get('background-image', 'none')[4:-1].strip("'") res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name res['default_meta_description'] = self.subtitle return res diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index 6cd2a7d5bd2..fb22d3be845 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -155,7 +155,8 @@ class Event(models.Model): def _default_website_meta(self): res = super(Event, self)._default_website_meta() event_cover_properties = json.loads(self.cover_properties) - res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = event_cover_properties.get('background-image', 'none')[4:-1] + # background-image might contain single quotes eg `url('/my/url')` + res['default_opengraph']['og:image'] = res['default_twitter']['twitter:image'] = event_cover_properties.get('background-image', 'none')[4:-1].strip("'") res['default_opengraph']['og:title'] = res['default_twitter']['twitter:title'] = self.name res['default_opengraph']['og:description'] = res['default_twitter']['twitter:description'] = self.subtitle res['default_twitter']['twitter:card'] = 'summary'