From e1140a7a8880cc7679c301f8612f7b1d794d61d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A0n=20Todorovich?= Date: Mon, 7 Feb 2022 10:41:02 -0300 Subject: [PATCH] [FIX] web_widget_ckeditor: ir.config_parameter read permissions (+) some small linter warning fixes --- web_widget_ckeditor/__init__.py | 2 +- web_widget_ckeditor/models/__init__.py | 1 + .../models/ir_config_parameter.py | 16 ++++++++++++++++ .../static/src/js/field_ckeditor.js | 18 +++++++++--------- 4 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 web_widget_ckeditor/models/__init__.py create mode 100644 web_widget_ckeditor/models/ir_config_parameter.py diff --git a/web_widget_ckeditor/__init__.py b/web_widget_ckeditor/__init__.py index 737b47724..0650744f6 100644 --- a/web_widget_ckeditor/__init__.py +++ b/web_widget_ckeditor/__init__.py @@ -1 +1 @@ -# from . import models +from . import models diff --git a/web_widget_ckeditor/models/__init__.py b/web_widget_ckeditor/models/__init__.py new file mode 100644 index 000000000..bd3aa9f10 --- /dev/null +++ b/web_widget_ckeditor/models/__init__.py @@ -0,0 +1 @@ +from . import ir_config_parameter diff --git a/web_widget_ckeditor/models/ir_config_parameter.py b/web_widget_ckeditor/models/ir_config_parameter.py new file mode 100644 index 000000000..710f7c4b7 --- /dev/null +++ b/web_widget_ckeditor/models/ir_config_parameter.py @@ -0,0 +1,16 @@ +# Copyright 2022 Camptocamp SA (https://www.camptocamp.com). +# @author Iván Todorovich +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class IrConfigParameter(models.Model): + _inherit = "ir.config_parameter" + + @api.model + def get_web_widget_ckeditor_config(self): + get_param = self.sudo().get_param + return { + "toolbar": get_param("web_widget_ckeditor.toolbar"), + } diff --git a/web_widget_ckeditor/static/src/js/field_ckeditor.js b/web_widget_ckeditor/static/src/js/field_ckeditor.js index e6321a7c1..0f212abe4 100644 --- a/web_widget_ckeditor/static/src/js/field_ckeditor.js +++ b/web_widget_ckeditor/static/src/js/field_ckeditor.js @@ -17,15 +17,14 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) { const TranslatableFieldMixin = basic_fields.TranslatableFieldMixin; // Load configuration for the editor - const defaultCKEditorToolbarPromise = rpc.query({ + const getCKEditorConfigPromise = rpc.query({ model: "ir.config_parameter", - method: "get_param", - args: ["web_widget_ckeditor.toolbar"], + method: "get_web_widget_ckeditor_config", }); // Load CKEditor localization files async function loadCKEditorLanguageSource(languageCode) { - if (languageCode == "en") { + if (languageCode === "en") { return; } const languageURL = `/web_widget_ckeditor/static/lib/ckeditor/build/translations/${languageCode}.js`; @@ -87,9 +86,10 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) { * @override */ isSet: function () { - var value = + // Removing spaces & html spaces + const value = this.value && - this.value.split(" ").join("").replace(/\s/g, ""); // Removing spaces & html spaces + this.value.split(" ").join("").replace(/\s/g, ""); return ( value && value !== "

" && @@ -143,9 +143,9 @@ odoo.define("web_widget_ckeditor.field_ckeditor", function (require) { */ _getCKEditorToolbarItems: async function () { try { - const toolbarConfig = await defaultCKEditorToolbarPromise; - if (toolbarConfig) { - return toolbarConfig.split(/[\s,]+/).filter((item) => item); + const ckconfig = await getCKEditorConfigPromise; + if (ckconfig.toolbar) { + return ckconfig.toolbar.split(/[\s,]+/).filter((item) => item); } } catch (error) { console.warn(