From 0c4603d0fe1bed39fb7a7ec0f461e051b3ffd04c Mon Sep 17 00:00:00 2001 From: Lucas Perais Date: Tue, 9 Aug 2022 10:25:34 +0000 Subject: [PATCH] [FIX] web: field help attribute in xml has precedence Have a field declared in python with a "help" property. Put that field in a view with a "help" attribute. Before this commit, the xml declaration was not taken into account. After this commit, xml declaration has precedence over the python one. closes odoo/odoo#97782 Signed-off-by: Lucas Perais (lpe) --- addons/web/static/src/views/fields/field.js | 1 + .../static/src/views/fields/field_tooltip.js | 2 +- .../static/tests/views/form/form_view_tests.js | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/views/fields/field.js b/addons/web/static/src/views/fields/field.js index c23b667f212..0e780230be9 100644 --- a/addons/web/static/src/views/fields/field.js +++ b/addons/web/static/src/views/fields/field.js @@ -203,6 +203,7 @@ Field.parseFieldNode = function (node, models, modelName, viewType, jsClass) { context: node.getAttribute("context") || "{}", domain: node.getAttribute("domain") || "[]", string: node.getAttribute("string") || field.string, + help: node.getAttribute("help"), widget, modifiers, onChange: archParseBoolean(node.getAttribute("on_change")), diff --git a/addons/web/static/src/views/fields/field_tooltip.js b/addons/web/static/src/views/fields/field_tooltip.js index a7cf328bc79..49dad72a1be 100644 --- a/addons/web/static/src/views/fields/field_tooltip.js +++ b/addons/web/static/src/views/fields/field_tooltip.js @@ -20,7 +20,7 @@ export function getTooltipInfo(params) { field: { label: params.field.string, name: params.field.name, - help: params.help || params.field.help, + help: params.fieldInfo.help !== null ? params.fieldInfo.help : params.field.help, type: params.field.type, widget: params.fieldInfo.widget, widgetDescription, diff --git a/addons/web/static/tests/views/form/form_view_tests.js b/addons/web/static/tests/views/form/form_view_tests.js index d463e92bb97..852322c1bb6 100644 --- a/addons/web/static/tests/views/form/form_view_tests.js +++ b/addons/web/static/tests/views/form/form_view_tests.js @@ -11716,4 +11716,21 @@ QUnit.module("Views", (hooks) => { assert.verifySteps(["get_views", "onchange", "onchange", "create", "read", "read"]); } ); + + QUnit.test("help on field as precedence over field's declaration -- form", async (assert) => { + serverData.models.partner.fields.foo.help = "pythonHelp"; + patchWithCleanup(odoo, { debug: "1" }); + await makeView({ + type: "form", + resModel: "partner", + resId: 1, + arch: `
`, + serverData, + }); + + assert.strictEqual( + JSON.parse(target.querySelector(".o_field_widget").dataset.tooltipInfo).field.help, + "xmlHelp" + ); + }); });