From 01813d5156d65d9fbe79647feee78192231f85c2 Mon Sep 17 00:00:00 2001 From: metatroncubeswdev Date: Mon, 31 Aug 2026 15:09:48 -0400 Subject: [PATCH] Harden corporate website home menu cleanup --- .../models/website_setup.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/mcs_corporate_website/models/website_setup.py b/addons/mcs_corporate_website/models/website_setup.py index 5a47119..3309756 100644 --- a/addons/mcs_corporate_website/models/website_setup.py +++ b/addons/mcs_corporate_website/models/website_setup.py @@ -41,10 +41,20 @@ class McsCorporateWebsiteSetup(models.AbstractModel): for menu in home_menus: by_parent.setdefault(menu.parent_id.id or 0, self.env["website.menu"]) by_parent[menu.parent_id.id or 0] |= menu + duplicate_ids = [] for menus in by_parent.values(): duplicates = menus.sorted(lambda item: item.id)[1:] - if duplicates: - duplicates.unlink() + duplicate_ids.extend(duplicates.ids) own_home = self.env.ref("mcs_corporate_website.menu_home", raise_if_not_found=False) - if own_home: - own_home.unlink() + if own_home and own_home.id not in duplicate_ids: + duplicate_ids.append(own_home.id) + if not duplicate_ids: + return + self.env.cr.execute( + "DELETE FROM ir_model_data WHERE model = %s AND res_id = ANY(%s)", + ["website.menu", duplicate_ids], + ) + self.env.cr.execute( + "DELETE FROM website_menu WHERE id = ANY(%s)", + [duplicate_ids], + )