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:
|
for menu in home_menus:
|
||||||
by_parent.setdefault(menu.parent_id.id or 0, self.env["website.menu"])
|
by_parent.setdefault(menu.parent_id.id or 0, self.env["website.menu"])
|
||||||
by_parent[menu.parent_id.id or 0] |= menu
|
by_parent[menu.parent_id.id or 0] |= menu
|
||||||
|
duplicate_ids = []
|
||||||
for menus in by_parent.values():
|
for menus in by_parent.values():
|
||||||
duplicates = menus.sorted(lambda item: item.id)[1:]
|
duplicates = menus.sorted(lambda item: item.id)[1:]
|
||||||
if duplicates:
|
duplicate_ids.extend(duplicates.ids)
|
||||||
duplicates.unlink()
|
|
||||||
own_home = self.env.ref("mcs_corporate_website.menu_home", raise_if_not_found=False)
|
own_home = self.env.ref("mcs_corporate_website.menu_home", raise_if_not_found=False)
|
||||||
if own_home:
|
if own_home and own_home.id not in duplicate_ids:
|
||||||
own_home.unlink()
|
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