summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorPatrick Hoste <pko@odoo.com>2020-03-06 09:17:18 +0000
committerPatrick Hoste <pko@odoo.com>2020-03-26 15:57:21 +0000
commit37d281681c864f36c09de6f3895f9ef09a9dcdff (patch)
treef03a777399795dcf5c2ba89c4d18070588a953d6 /addons
parent4dfd0051d688accb9cc5bca1c0fabba7c10d9e8c (diff)
[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>
Diffstat (limited to 'addons')
-rw-r--r--addons/website_event/models/event_event.py7
-rw-r--r--addons/website_event_track/models/event_event.py8
2 files changed, 7 insertions, 8 deletions
diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py
index fb22d3be845..5a7901ba22b 100644
--- a/addons/website_event/models/event_event.py
+++ b/addons/website_event/models/event_event.py
@@ -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)
diff --git a/addons/website_event_track/models/event_event.py b/addons/website_event_track/models/event_event.py
index 20ef5f43c97..f8b2ecab2c9 100644
--- a/addons/website_event_track/models/event_event.py
+++ b/addons/website_event_track/models/event_event.py
@@ -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):