diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js index 76db6727285..2cbaf3a6374 100644 --- a/addons/web/static/src/js/views/list/list_renderer.js +++ b/addons/web/static/src/js/views/list/list_renderer.js @@ -364,7 +364,8 @@ var ListRenderer = BasicRenderer.extend({ isPassword: 'password' in node.attrs, }); this._handleAttributes($td, node); - return $td.html(formattedValue).attr('title', formattedValue); + var title = field.type !== 'boolean' ? formattedValue : ''; + return $td.html(formattedValue).attr('title', title); }, /** * Renders the button element associated to the given node and record. diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js index be34bd19999..2336e9a4543 100644 --- a/addons/web/static/tests/views/list_tests.js +++ b/addons/web/static/tests/views/list_tests.js @@ -249,6 +249,19 @@ QUnit.module('Views', { list.destroy(); }); + QUnit.test('boolean field has no title', async function (assert) { + assert.expect(1); + + var list = await createView({ + View: ListView, + model: 'foo', + data: this.data, + arch: '', + }); + assert.equal(list.$('tbody tr:first td:eq(1)').attr('title'), ""); + list.destroy(); + }); + QUnit.test('record-depending invisible lines are correctly aligned', async function (assert) { assert.expect(4);