diff --git a/addons/web/static/src/views/relational_model.js b/addons/web/static/src/views/relational_model.js index c56d0064391..6488f76d751 100644 --- a/addons/web/static/src/views/relational_model.js +++ b/addons/web/static/src/views/relational_model.js @@ -2579,8 +2579,9 @@ export class Group extends DataPoint { /** * @see DynamicRecordList.deleteRecords */ - async deleteRecords() { - return this.list.deleteRecords(...arguments); + async deleteRecords(records) { + this.count = this.count - records.length; + return this.list.deleteRecords(records); } empty() { diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index dec16634d35..a7f77960c13 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -1182,6 +1182,36 @@ QUnit.module("Views", (hooks) => { } ); + QUnit.test("click on a button type='delete' to delete a record in a column", async (assert) => { + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + +
+
Delete
+ +
+
+
+
`, + groupBy: ["product_id"], + }); + let column = getColumn(); + assert.containsN(column, ".o_kanban_record", 2); + assert.containsNone(column, ".o_kanban_load_more"); + + await click(column.querySelector(".o_kanban_record .o_delete")); + assert.containsOnce(target, ".modal"); + + await click(target, ".modal .btn-primary"); + column = getColumn(); + assert.containsOnce(column, ".o_kanban_record"); + assert.containsNone(column, ".o_kanban_load_more"); + }); + QUnit.test("kanban with an action id as on_create attrs", async (assert) => { const actionService = { start() {