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" + ); + }); });