diff --git a/addons/web/static/src/model/relational_model/dynamic_group_list.js b/addons/web/static/src/model/relational_model/dynamic_group_list.js
index e53c585dc8a..4b3a85c0c15 100644
--- a/addons/web/static/src/model/relational_model/dynamic_group_list.js
+++ b/addons/web/static/src/model/relational_model/dynamic_group_list.js
@@ -249,11 +249,11 @@ export class DynamicGroupList extends DynamicList {
async _deleteGroups(groups) {
const shouldReload = groups.some((g) => g.count > 0);
await this._unlinkGroups(groups);
+ const configGroups = { ...this.config.groups };
+ for (const group of groups) {
+ delete configGroups[group.value];
+ }
if (shouldReload) {
- const configGroups = { ...this.config.groups };
- for (const group of groups) {
- delete configGroups[group.value];
- }
await this.model._updateConfig(
this.config,
{ groups: configGroups },
@@ -263,6 +263,7 @@ export class DynamicGroupList extends DynamicList {
for (const group of groups) {
this._removeGroup(group);
}
+ this.model._updateConfig(this.config, { groups: configGroups }, { reload: false });
}
}
diff --git a/addons/web/static/tests/views/kanban/kanban_view_tests.js b/addons/web/static/tests/views/kanban/kanban_view_tests.js
index 914c8543514..194c5b49e37 100644
--- a/addons/web/static/tests/views/kanban/kanban_view_tests.js
+++ b/addons/web/static/tests/views/kanban/kanban_view_tests.js
@@ -6256,6 +6256,55 @@ QUnit.module("Views", (hooks) => {
);
});
+ QUnit.test("delete an empty column, then a column with records.", async (assert) => {
+ patchDialog((_cls, props) => props.confirm());
+ let firstLoad = true;
+
+ await makeView({
+ type: "kanban",
+ resModel: "partner",
+ serverData,
+ arch:
+ '