[FIX] website: fix menus unlinking

Fine-tuning of commit b48d2b6b5e.
The call to unlink inside the unlink can recurse infinitely
in case there is a copy of a menu.
We replace that direct call by an accumulator so no recursion occurs.

opw 1922448

closes odoo/odoo#30032
This commit is contained in:
Nans Lefebvre
2019-01-09 10:29:52 +00:00
parent f24d5dd2b6
commit 8c5ec851fc
+5 -2
View File
@@ -1152,9 +1152,12 @@ class Menu(models.Model):
@api.multi
def unlink(self):
default_menu = self.env.ref('website.main_menu', raise_if_not_found=False)
menus_to_remove = self
for menu in self.filtered(lambda m: default_menu and m.parent_id.id == default_menu.id):
self.env['website.menu'].search([('url', '=', menu.url), ('id', '!=', menu.id)]).unlink()
return super(Menu, self).unlink()
menus_to_remove |= self.env['website.menu'].search([('url', '=', menu.url),
('website_id', '!=', False),
('id', '!=', menu.id)])
return super(Menu, menus_to_remove).unlink()
@api.one
def _compute_visible(self):