[FIX] website_event(_track): fix duplicate submenu

PURPOSE

Before this commit when updating an event with website_menu, website_track or
website_track_proposal activated it created an extra sub menu even if already
created. This commit fix this issue.

SPECIFICATIONS

Check if the menu doesn't exist before creating it.

LINKS

Task ID : 2210441
PR : #47058

closes odoo/odoo#48451

X-original-commit: d6e334d48aace3fce196bb0652915cd5232ffbe7
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Patrick Hoste
2020-03-26 15:57:21 +00:00
parent 4dfd0051d6
commit 37d281681c
2 changed files with 7 additions and 8 deletions
+3 -4
View File
@@ -93,10 +93,9 @@ class Event(models.Model):
if 'website_menu' in vals:
if event.menu_id and not event.website_menu:
event.menu_id.unlink()
elif event.website_menu:
if not event.menu_id:
root_menu = self.env['website.menu'].create({'name': event.name, 'website_id': event.website_id.id})
event.menu_id = root_menu
elif event.website_menu and not event.menu_id:
root_menu = self.env['website.menu'].create({'name': event.name, 'website_id': event.website_id.id})
event.menu_id = root_menu
for sequence, (name, url, xml_id) in enumerate(event._get_menu_entries()):
event._create_menu(sequence, name, url, xml_id)
@@ -104,7 +104,7 @@ class Event(models.Model):
super(Event, self)._update_website_menus(vals)
for event in self:
if 'website_track' in vals:
if vals['website_track']:
if vals['website_track'] and not event.track_menu_ids:
for sequence, (name, url, xml_id, menu_type) in enumerate(event._get_track_menu_entries()):
menu = super(Event, event)._create_menu(sequence, name, url, xml_id)
event.env['website.event.menu'].create({
@@ -112,10 +112,10 @@ class Event(models.Model):
'event_id': event.id,
'menu_type': menu_type,
})
else:
elif event.track_menu_ids and not vals['website_track']:
event.track_menu_ids.mapped('menu_id').unlink()
if 'website_track_proposal' in vals:
if vals['website_track_proposal']:
if vals['website_track_proposal'] and not event.track_proposal_menu_ids:
for sequence, (name, url, xml_id, menu_type) in enumerate(event._get_track_proposal_menu_entries()):
menu = super(Event, event)._create_menu(sequence, name, url, xml_id)
event.env['website.event.menu'].create({
@@ -123,7 +123,7 @@ class Event(models.Model):
'event_id': event.id,
'menu_type': menu_type,
})
else:
elif event.track_proposal_menu_ids and not vals['website_track_proposal']:
event.track_proposal_menu_ids.mapped('menu_id').unlink()
def _get_track_menu_entries(self):