summaryrefslogtreecommitdiff
path: root/addons/website_event
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_event')
-rw-r--r--addons/website_event/models/event_event.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py
index 472a60f802a..e67d6da0ce6 100644
--- a/addons/website_event/models/event_event.py
+++ b/addons/website_event/models/event_event.py
@@ -33,9 +33,10 @@ class Event(models.Model):
# website
website_published = fields.Boolean(tracking=True)
website_menu = fields.Boolean(
- 'Dedicated Menu', copy=False,
+ string='Dedicated Menu', copy=False,
+ compute='_compute_from_event_type', readonly=False, store=True,
help="Creates menus Introduction, Location and Register on the page "
- " of the event on the website.")
+ "of the event on the website.")
menu_id = fields.Many2one('website.menu', 'Event Menu', copy=False)
def _compute_is_participating(self):
@@ -55,11 +56,17 @@ class Event(models.Model):
if event.id: # avoid to perform a slug on a not yet saved record in case of an onchange.
event.website_url = '/event/%s' % slug(event)
- @api.onchange('event_type_id')
- def _onchange_type(self):
- super(Event, self)._onchange_type()
- if self.event_type_id:
- self.website_menu = self.event_type_id.website_menu
+ @api.depends('event_type_id')
+ def _compute_from_event_type(self):
+ """ Also ensure a value for website_menu as it is a trigger notably for
+ track related menus. """
+ super(Event, self)._compute_from_event_type()
+ for event in self:
+ if not event.event_type_id:
+ if not event.website_menu:
+ event.website_menu = False
+ elif event.event_type_id:
+ event.website_menu = event.event_type_id.website_menu
@api.model
def create(self, vals):