[FIX] web: augmented the context of many2many fields
Prior to this change, anything passed in the context of a m2m avatar field would not be taken into account because the context was not passed properly in the many2many_tags_avatar_field template. This commit fixes that and also adds a test for future testing. task-3599601 closes odoo/odoo#146562 X-original-commit: 03202b7c790be266674e12b96a0b99f44ac773ed Signed-off-by: Francois Georis (fge) <fge@odoo.com>
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
activeActions="activeActions"
|
activeActions="activeActions"
|
||||||
update="update"
|
update="update"
|
||||||
quickCreate="activeActions.create ? quickCreate : null"
|
quickCreate="activeActions.create ? quickCreate : null"
|
||||||
context="context"
|
context="props.context"
|
||||||
getDomain.bind="getDomain"
|
getDomain.bind="getDomain"
|
||||||
isToMany="true"
|
isToMany="true"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
/** @odoo-module **/
|
/** @odoo-module **/
|
||||||
|
|
||||||
|
import { browser } from "@web/core/browser/browser";
|
||||||
import {
|
import {
|
||||||
click,
|
click,
|
||||||
clickSave,
|
clickSave,
|
||||||
editInput,
|
|
||||||
getFixture,
|
getFixture,
|
||||||
patchWithCleanup,
|
patchWithCleanup,
|
||||||
selectDropdownItem,
|
selectDropdownItem,
|
||||||
triggerEvent,
|
triggerEvent,
|
||||||
|
editInput,
|
||||||
|
clickOpenedDropdownItem,
|
||||||
} from "@web/../tests/helpers/utils";
|
} from "@web/../tests/helpers/utils";
|
||||||
import { makeView, setupViewRegistries } from "@web/../tests/views/helpers";
|
import { makeView, setupViewRegistries } from "@web/../tests/views/helpers";
|
||||||
import { triggerHotkey } from "../../helpers/utils";
|
import { triggerHotkey } from "../../helpers/utils";
|
||||||
import { browser } from "@web/core/browser/browser";
|
|
||||||
|
|
||||||
let serverData;
|
let serverData;
|
||||||
let target;
|
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": `<form><field name="display_name"/></form>`,
|
||||||
|
};
|
||||||
|
|
||||||
|
patchWithCleanup(browser, {
|
||||||
|
setTimeout: (fn) => fn(),
|
||||||
|
});
|
||||||
|
|
||||||
|
await makeView({
|
||||||
|
type: "list",
|
||||||
|
resModel: "turtle",
|
||||||
|
serverData,
|
||||||
|
arch: `<list editable="top">
|
||||||
|
<field name="partner_ids" widget="many2many_tags_avatar" context="{ 'append_coucou': 'test_value' }"/>
|
||||||
|
</list>`,
|
||||||
|
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"]);
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user