From 46ea05ab0313c109a37b61e087004e75ccd574de Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Tue, 9 Feb 2021 11:56:07 +0000 Subject: [PATCH] [FIX] web_editor: prevent mismatch between mimetype and content type Since the image util method `image_base64()` is converting BMP images to PNG automatically[1], there would be a mismatch between the attachment content type and the attachment mimetype. - Content type: retrieve with `base64_to_image(data).format` -> return PNG as the image data was converted from BMP to PNG - Mimetype: set on `write()` and `create()` with `_check_contents()` which call `mimetypes.guess_type(file_name)`. BMP image `my_file_image.bmp` would have a mimetype set to BMP The computed field `image_src` would return `False` since the image.mimetype would be BMP, making the dialog picker not showing the image but loading `http://localhost:8069/false` instead. [1] https://github.com/odoo/odoo/blame/097f29d0f6a5b295c81fd074665dbd261eaf12fb/odoo/tools/image.py#L124 task-2345082 Coming from #65828 Closes #68326 X-original-commit: ef5b108b781df73342bb99342a1116fad86d3b58 --- addons/web_editor/controllers/main.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/web_editor/controllers/main.py b/addons/web_editor/controllers/main.py index a50828fd0a9..66642c8b985 100644 --- a/addons/web_editor/controllers/main.py +++ b/addons/web_editor/controllers/main.py @@ -243,6 +243,10 @@ class Web_Editor(http.Controller): def _attachment_create(self, name='', data=False, url=False, res_id=False, res_model='ir.ui.view'): """Create and return a new attachment.""" + if name.lower().endswith('.bmp'): + # Avoid mismatch between content type and mimetype, see commit msg + name = name[:-4] + if not name and url: name = url.split("/").pop()