From bf9d864fb0a91e68dba36a901ebbe4d1bc1df4ee Mon Sep 17 00:00:00 2001 From: Samuel Degueldre Date: Wed, 1 Apr 2020 14:06:20 +0000 Subject: [PATCH] [FIX] website: fix logo not supporting new image url format In a recent commit, we decided to change the image url format generated by the media-dialog to leverage browser caching using unique. Unfortunately, when saving an img tag to a binary field, the url parsing did not support this new url format, causing a traceback when changing the website logo and attempting to save. closes odoo/odoo#48914 X-original-commit: 9c618c7f903f1a0b32e067cfd713cd39762250f9 Signed-off-by: Quentin Smetz (qsm) --- addons/web_editor/models/ir_qweb.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py index 3ee7073c691..908035b855c 100644 --- a/addons/web_editor/models/ir_qweb.py +++ b/addons/web_editor/models/ir_qweb.py @@ -359,16 +359,18 @@ class Image(models.AbstractModel): url_object = urls.url_parse(url) if url_object.path.startswith('/web/image'): - # url might be /web/image//[_]/[/x] fragments = url_object.path.split('/') query = url_object.decode_query() - if fragments[3].isdigit(): + url_id = fragments[3].split('-')[0] + # ir.attachment image urls: /web/image/[-][/...] + if url_id.isdigit(): model = 'ir.attachment' - oid = fragments[3] + oid = url_id field = 'datas' + # url of binary field on model: /web/image///[/...] else: model = query.get('model', fragments[3]) - oid = query.get('id', fragments[4].split('_')[0]) + oid = query.get('id', fragments[4]) field = query.get('field', fragments[5]) item = self.env[model].browse(int(oid)) return item[field]