[FIX] web: traceback occurs on Quick assigns (M2M_tags_avatars)
This traceback only occurs if you quickly assign and close the popover during the rerender of the popover. We call an element inside the popover already destroyed. Steps to reproduce: - Open a kanban view inside the project app - Click on the "Quick Assign icon" - Select a user A - Press directly "escape" to close the dropdown a traceback occurs => bug closes odoo/odoo#132337 X-original-commit: f75074d225a05571bea87589b81fbefb11b054f4 Signed-off-by: Romeo Fragomeli (rfr) <rfr@odoo.com> Signed-off-by: Romain Estievenart (res) <res@odoo.com>
This commit is contained in:
+1
-1
@@ -78,7 +78,7 @@ export class Many2ManyTagsAvatarFieldPopover extends Many2ManyTagsAvatarField {
|
||||
// manual render to dirty record
|
||||
this.render();
|
||||
// update dropdown
|
||||
this.autoCompleteRef.el.querySelector("input").click();
|
||||
this.autoCompleteRef.el?.querySelector("input")?.click();
|
||||
}
|
||||
|
||||
get tags() {
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { click, clickSave, getFixture, selectDropdownItem } from "@web/../tests/helpers/utils";
|
||||
import {
|
||||
click,
|
||||
clickSave,
|
||||
getFixture,
|
||||
selectDropdownItem,
|
||||
triggerEvent,
|
||||
} from "@web/../tests/helpers/utils";
|
||||
import { makeView, setupViewRegistries } from "@web/../tests/views/helpers";
|
||||
import { triggerHotkey } from "../../helpers/utils";
|
||||
|
||||
@@ -521,6 +527,49 @@ QUnit.module("Fields", (hooks) => {
|
||||
);
|
||||
});
|
||||
|
||||
QUnit.test(
|
||||
"widget many2many_tags_avatar quick add tags and close in kanban view with keyboard navigation",
|
||||
async function (assert) {
|
||||
await makeView({
|
||||
type: "kanban",
|
||||
resModel: "turtle",
|
||||
serverData,
|
||||
arch: `
|
||||
<kanban>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click">
|
||||
<field name="display_name"/>
|
||||
<div class="oe_kanban_footer">
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<field name="partner_ids" widget="many2many_tags_avatar"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>`,
|
||||
});
|
||||
await click(target, ".o_kanban_record:first-child .o_quick_assign", true);
|
||||
// add and directly close the dropdown
|
||||
await triggerEvent(target, null, "keydown", { key: "Tab" });
|
||||
await triggerEvent(document.activeElement, null, "keydown", { key: "Enter" });
|
||||
await triggerEvent(target, null, "keydown", { key: "Escape" });
|
||||
assert.containsOnce(
|
||||
target,
|
||||
".o_kanban_record:first-child .o_field_many2many_tags_avatar .o_tag",
|
||||
"should assign the user"
|
||||
);
|
||||
assert.containsNone(
|
||||
target,
|
||||
".o_kanban_record:first-child .o_field_many2many_tags_avatar .o_popover",
|
||||
"should have close the popover"
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
QUnit.test(
|
||||
"widget many2many_tags_avatar in kanban view missing access rights",
|
||||
async function (assert) {
|
||||
|
||||
Reference in New Issue
Block a user