From 4c13f4f08c7e7c62ca1e81f971a186532713e36e Mon Sep 17 00:00:00 2001 From: "Adrien Minne (adrm)" Date: Thu, 13 Jul 2023 08:52:58 +0000 Subject: [PATCH] [IMP] spreadsheet: detect mismatch in user/spreadsheet locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit add a small indicator in the spreadsheet's control panel to indicate if the user's locale is different from the spreadsheet's. closes odoo/odoo#129857 Task: 3389491 X-original-commit: 5c776994f7bd230816369be3899989e7ab780906 Related: odoo/enterprise#44665 Signed-off-by: Rémi Rahir (rar) --- addons/spreadsheet/models/res_lang.py | 6 ++++++ addons/spreadsheet/static/tests/utils/mock_server.js | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/spreadsheet/models/res_lang.py b/addons/spreadsheet/models/res_lang.py index 57143a5550d..6d4ae813de4 100644 --- a/addons/spreadsheet/models/res_lang.py +++ b/addons/spreadsheet/models/res_lang.py @@ -19,6 +19,12 @@ class Lang(models.Model): spreadsheet_locales = [lang._odoo_lang_to_spreadsheet_locale() for lang in langs] return spreadsheet_locales + @api.model + def get_user_spreadsheet_locale(self): + """Convert the odoo lang to a spreadsheet locale.""" + lang = self._lang_get(self.env.user.lang) + return lang._odoo_lang_to_spreadsheet_locale() + def _odoo_lang_to_spreadsheet_locale(self): """Convert an odoo lang to a spreadsheet locale.""" return { diff --git a/addons/spreadsheet/static/tests/utils/mock_server.js b/addons/spreadsheet/static/tests/utils/mock_server.js index 6a2de0342be..4d6d1a4cc71 100644 --- a/addons/spreadsheet/static/tests/utils/mock_server.js +++ b/addons/spreadsheet/static/tests/utils/mock_server.js @@ -1,13 +1,14 @@ /** @odoo-module */ import { registry } from "@web/core/registry"; +import { constants } from "@odoo/o-spreadsheet"; registry .category("mock_server") .add("res.currency/get_currencies_for_spreadsheet", function (route, args) { const currencyNames = args.args[0]; const result = []; - for (let currencyName of currencyNames) { + for (const currencyName of currencyNames) { const curr = this.models["res.currency"].records.find( (curr) => curr.name === currencyName ); @@ -28,4 +29,7 @@ registry position: "after", decimalPlaces: 2, }; + }) + .add("res.lang/get_user_spreadsheet_locale", function (route, args) { + return constants.DEFAULT_LOCALE; });