diff --git a/addons/web/static/src/views/fields/many2many_tags_avatar/many2many_tags_avatar_field.xml b/addons/web/static/src/views/fields/many2many_tags_avatar/many2many_tags_avatar_field.xml index 07164eae286..317d3c2078d 100644 --- a/addons/web/static/src/views/fields/many2many_tags_avatar/many2many_tags_avatar_field.xml +++ b/addons/web/static/src/views/fields/many2many_tags_avatar/many2many_tags_avatar_field.xml @@ -18,7 +18,7 @@ activeActions="activeActions" update="update" quickCreate="activeActions.create ? quickCreate : null" - context="context" + context="props.context" getDomain.bind="getDomain" isToMany="true" /> 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 b8da4a434cf..e7691d2cd75 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 @@ -1,17 +1,18 @@ /** @odoo-module **/ +import { browser } from "@web/core/browser/browser"; import { click, clickSave, - editInput, getFixture, patchWithCleanup, selectDropdownItem, triggerEvent, + editInput, + clickOpenedDropdownItem, } from "@web/../tests/helpers/utils"; import { makeView, setupViewRegistries } from "@web/../tests/views/helpers"; import { triggerHotkey } from "../../helpers/utils"; -import { browser } from "@web/core/browser/browser"; let serverData; let target; @@ -661,4 +662,40 @@ QUnit.module("Fields", (hooks) => { "" ); }); + + QUnit.test( + "Many2ManyTagsAvatarField: make sure that the arch context is passed to the form view call", + async function (assert) { + serverData.views = { + "partner,false,form": `
`, + }; + + patchWithCleanup(browser, { + setTimeout: (fn) => fn(), + }); + + await makeView({ + type: "list", + resModel: "turtle", + serverData, + arch: ` + + `, + mockRPC(route, args) { + if (args.method === "onchange" && args.model === "partner") { + if (args.kwargs.context.append_coucou === "test_value") { + assert.step("onchange with context given"); + } + } + }, + }); + + await click(target.querySelector("div[name=partner_ids]")); + await editInput(target, `div[name="partner_ids"] input`, "A new partner"); + await clickOpenedDropdownItem(target, "partner_ids", "Create and edit..."); + + assert.containsOnce(target, ".modal .o_form_view", "Here we should have opened the modal form view"); + assert.verifySteps(["onchange with context given"]); + } + ); });