diff --git a/addons/web/static/src/views/relational_model.js b/addons/web/static/src/views/relational_model.js index 38a3444bb7e..1a18ed6f102 100644 --- a/addons/web/static/src/views/relational_model.js +++ b/addons/web/static/src/views/relational_model.js @@ -2406,7 +2406,10 @@ export class DynamicGroupList extends DynamicList { async _loadGroups() { const firstGroupByName = this.firstGroupBy.split(":")[0]; const _orderBy = this.orderBy.filter( - (o) => o.name === firstGroupByName || (this.fieldNames.includes(o.name) && this.fields[o.name].group_operator !== undefined) + (o) => + o.name === firstGroupByName || + (this.fieldNames.includes(o.name) && + this.fields[o.name].group_operator !== undefined) ); const orderby = orderByToString(_orderBy); const { groups, length } = await this.model.orm.webReadGroup( @@ -2597,9 +2600,10 @@ export class Group extends DataPoint { return this.list.addRecord(record, index); } - addExistingRecord(resId, atFirstPosition = false) { + async addExistingRecord(resId, atFirstPosition = false) { + const record = await this.list.addExistingRecord(resId, atFirstPosition); this.count++; - return this.list.addExistingRecord(resId, atFirstPosition); + return record; } createRecord(params = {}, atFirstPosition = false) { diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index f6cace3976b..75e0cd1132e 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -1849,6 +1849,49 @@ QUnit.module("Views", (hooks) => { assert.containsOnce(target, ".o_kanban_group:first-child .o_kanban_quick_create"); }); + QUnit.test("quick create record flickering (load more)", async (assert) => { + let def; + serverData.views["partner,some_view_ref,form"] = ` +
+ + `; + + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + +
+ +
+
+
+
`, + groupBy: ["bar"], + async mockRPC(route, args) { + if (args.method === "read") { + await def; + } + }, + }); + + // click on 'Create' -> should open the quick create in the first column + await createRecord(); + + // fill the quick create and validate + await editQuickCreateInput("foo", "new partner"); + def = makeDeferred(); + await validateRecord(); + assert.containsNone(target, ".o_kanban_load_more"); + def.resolve(); + await nextTick(); + assert.containsNone(target, ".o_kanban_load_more"); + }); + QUnit.test( "quick create record should focus default field [REQUIRE FOCUS]", async function (assert) {