diff --git a/addons/web/static/src/views/list/list_arch_parser.js b/addons/web/static/src/views/list/list_arch_parser.js index 96ea4d47783..d89c2a9adba 100644 --- a/addons/web/static/src/views/list/list_arch_parser.js +++ b/addons/web/static/src/views/list/list_arch_parser.js @@ -86,7 +86,7 @@ export class ListArchParser extends XMLParser { } addFieldDependencies(activeFields, fieldInfo.FieldComponent.fieldDependencies); if (!invisible || !archParseBoolean(invisible)) { - const displayName = fieldInfo.FieldComponent.displayName; + const label = fieldInfo.FieldComponent.label; columns.push({ ...fieldInfo, id: `column_${nextId++}`, @@ -94,9 +94,7 @@ export class ListArchParser extends XMLParser { optional: node.getAttribute("optional") || false, type: "field", hasLabel: !(fieldInfo.noLabel || fieldInfo.FieldComponent.noLabel), - label: - (fieldInfo.widget && displayName && displayName.toString()) || - fieldInfo.string, + label: (fieldInfo.widget && label && label.toString()) || fieldInfo.string, }); } return false; diff --git a/addons/web/static/src/views/list/list_renderer.js b/addons/web/static/src/views/list/list_renderer.js index b43dd1354dd..d5142d11304 100644 --- a/addons/web/static/src/views/list/list_renderer.js +++ b/addons/web/static/src/views/list/list_renderer.js @@ -435,7 +435,7 @@ export class ListRenderer extends Component { return this.allColumns .filter((col) => col.optional) .map((col) => ({ - string: col.string, + label: col.label, name: col.name, value: this.optionalActiveFields[col.name], })); diff --git a/addons/web/static/src/views/list/list_renderer.xml b/addons/web/static/src/views/list/list_renderer.xml index 6f2e0354ad3..dc1c3883761 100644 --- a/addons/web/static/src/views/list/list_renderer.xml +++ b/addons/web/static/src/views/list/list_renderer.xml @@ -80,7 +80,7 @@ value="field.value" name="field.name" > - + diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index d2a3ccc5f51..852fc432e61 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -846,7 +846,7 @@ QUnit.module("Views", (hooks) => { fieldRegistry.add("nolabel_char", NoLabelCharField); class LabelCharField extends CharField {} - LabelCharField.displayName = "Some static label"; + LabelCharField.label = "Some static label"; fieldRegistry.add("label_char", LabelCharField); await makeView({ @@ -855,10 +855,10 @@ QUnit.module("Views", (hooks) => { serverData, arch: ` - - - - + + + + `, }); @@ -870,6 +870,17 @@ QUnit.module("Views", (hooks) => { "My custom label", "text field", ]); + + await click(target, "table .o_optional_columns_dropdown .dropdown-toggle"); + const optionalColumnLabels = [ + ...target.querySelectorAll(".o_optional_columns_dropdown .dropdown-item"), + ].map((item) => item.textContent.trim()); + assert.deepEqual(optionalColumnLabels, [ + "Display Name", + "Some static label", + "My custom label", + "text field", + ]); }); QUnit.test("simple editable rendering", async function (assert) {