diff --git a/addons/web/static/src/views/fields/many2many_tags/tags_list.js b/addons/web/static/src/views/fields/many2many_tags/tags_list.js index a0cb92f69ef..13197ed603a 100644 --- a/addons/web/static/src/views/fields/many2many_tags/tags_list.js +++ b/addons/web/static/src/views/fields/many2many_tags/tags_list.js @@ -15,8 +15,13 @@ export class TagsList extends Component { } return this.props.tags.slice(this.props.itemsVisible - 1); } - get tooltip() { - return this.otherTags.map((i) => i.text).join("
"); + get tooltipInfo() { + return JSON.stringify({ + tags: this.otherTags.map((tag) => ({ + text: tag.text, + id: tag.id, + })), + }); } } TagsList.template = "web.TagsList"; diff --git a/addons/web/static/src/views/fields/many2many_tags/tags_list.xml b/addons/web/static/src/views/fields/many2many_tags/tags_list.xml index 503e8d72e7f..ef9971ddee5 100644 --- a/addons/web/static/src/views/fields/many2many_tags/tags_list.xml +++ b/addons/web/static/src/views/fields/many2many_tags/tags_list.xml @@ -13,10 +13,16 @@ - + + + +
+ + + diff --git a/addons/web/static/tests/views/fields/many2many_tags_avatar_field_tests.js b/addons/web/static/tests/views/fields/many2many_tags_avatar_field_tests.js index 1a47022ec2d..00abfbaf44e 100644 --- a/addons/web/static/tests/views/fields/many2many_tags_avatar_field_tests.js +++ b/addons/web/static/tests/views/fields/many2many_tags_avatar_field_tests.js @@ -204,8 +204,14 @@ QUnit.module("Fields", (hooks) => { ".o_data_row:nth-child(2) .o_field_many2many_tags_avatar .o_m2m_avatar_empty" ); assert.strictEqual( - tag.dataset["tooltip"], - "record 6
record 7", + tag.dataset["tooltipTemplate"], + "web.TagsList.Tooltip", + "uses the proper tooltip template", + ); + const tooltipInfo = JSON.parse(tag.dataset["tooltipInfo"]); + assert.strictEqual( + tooltipInfo.tags.map(tag => tag.text).join(" "), + 'record 6 record 7', "shows a tooltip on hover" ); @@ -228,7 +234,7 @@ QUnit.module("Fields", (hooks) => { }); QUnit.test("widget many2many_tags_avatar in kanban view", async function (assert) { - assert.expect(12); + assert.expect(13); const records = []; for (let id = 5; id <= 15; id++) { @@ -355,9 +361,15 @@ QUnit.module("Fields", (hooks) => { ".o_kanban_record:nth-child(3) .o_field_many2many_tags_avatar .o_m2m_avatar_empty" ); assert.strictEqual( - tag.dataset["tooltip"], - "aaa
record 5", - "shows a tooltip on hover with the right text" + tag.dataset["tooltipTemplate"], + "web.TagsList.Tooltip", + "uses the proper tooltip template", + ); + const tooltipInfo = JSON.parse(tag.dataset["tooltipInfo"]); + assert.strictEqual( + tooltipInfo.tags.map(tag => tag.text).join(" "), + 'aaa record 5', + "shows a tooltip on hover" ); await click(