[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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user