Harden corporate website home menu cleanup
This commit is contained in:
parent
1b34c054b0
commit
01813d5156
@ -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],
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user