diff options
Diffstat (limited to 'addons/website_event')
| -rw-r--r-- | addons/website_event/models/event_event.py | 21 |
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): |
