From fdd60894ae0601d06f4e0e885a2695c631db5c5f Mon Sep 17 00:00:00 2001 From: "Hubert Van de Walle (huvw)" Date: Fri, 28 Oct 2022 14:01:05 +0000 Subject: [PATCH] [FIX] web: rtl assets in ltr language in debug mode Steps to reproduce: - Switch to `?debug=assets` - Change the user language to Arabic and back to English -> The page is still displayed in rtl mode Cause of the issue: The css is retrieved like this ```py >>> self.env['ir.attachment'].sudo().search([('url', '=like', '/web/assets/%/web.assets_common.css')]) ir.attachment(212, 189) >>> self.env['ir.attachment'].sudo().search([('url', '=like', '/web/assets/%/web.assets_common.css')]).mapped('url') ['/web/assets/212-5d47380/rtl/web.assets_common.css', '/web/assets/189-5d47380/web.assets_common.css'] ``` Only the second one should be matched. Solution: Check for the absence of an extra parameter in the url opw-2892012 closes odoo/odoo#105127 X-original-commit: 539427fa2a099b29adf099c2b48d4f1d2fd4ebd2 Signed-off-by: Julien Castiaux Signed-off-by: Hubert Van De Walle --- addons/web/controllers/binary.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/web/controllers/binary.py b/addons/web/controllers/binary.py index 716c7531fee..768da11a543 100644 --- a/addons/web/controllers/binary.py +++ b/addons/web/controllers/binary.py @@ -90,7 +90,13 @@ class Binary(http.Controller): # pylint: disable=redefined-builtin,invalid-name def content_assets(self, id=None, filename=None, unique=False, extra=None, nocache=False): if not id: - domain = [('url', '=like', '/web/assets/%/' + (f'{extra}/{filename}' if extra else filename))] + if extra: + domain = [('url', '=like', f'/web/assets/%/{extra}/{filename}')] + else: + domain = [ + ('url', '=like', f'/web/assets/%/{filename}'), + ('url', 'not like', f'/web/assets/%/%/{filename}') + ] attachment = request.env['ir.attachment'].sudo().search(domain, limit=1) if not attachment: raise request.not_found()