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(