From 1db746419f566a6299aaead8f0f8b6bb279732e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 8 Jul 2020 11:11:10 +0000 Subject: [PATCH] [REF] website_event(_track): reorganize website menu management code RATIONALE Even will soon gain a major update called Event Online, allowing to better support full-online events. In order to prepare its merge, preparatory merge are done to lessen the final diff. PURPOSE In this commit we simply move some code in website_event and event_track to better separate code about menu management from other code. It allows to understand code organization and will lessen diff of future commits improving menu management. LINKS PR #54801 Task ID 2304817 (Event Preparation 3) Prepares Task ID 2252655 (Main Online Event task) Prepares Task ID 2283796 (Event B2Basics) X-original-commit: 35b265f1950e9f2977edc940645c35efef19e3c9 --- addons/website_event/models/event_event.py | 14 +++++-- .../website_event_track/models/event_event.py | 40 ++++++++++--------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index d901c8c92e4..4071afbfe42 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -82,6 +82,13 @@ class Event(models.Model): (menu_to_activate | menu_to_deactivate)._update_website_menus() return res + # ------------------------------------------------------------ + # WEBSITE MENU MANAGEMENT + # ------------------------------------------------------------ + + def toggle_website_menu(self, val): + self.website_menu = val + def _get_menu_entries(self): """ Method returning menu entries to display on the website view of the event, possibly depending on some options in inheriting modules. """ @@ -116,6 +123,10 @@ class Event(models.Model): }) return menu + # ------------------------------------------------------------ + # TOOLS + # ------------------------------------------------------------ + def google_map_link(self, zoom=8): self.ensure_one() if self.address_id: @@ -168,6 +179,3 @@ class Event(models.Model): def get_backend_menu_id(self): return self.env.ref('event.event_main_menu').id - - def toggle_website_menu(self, val): - self.website_menu = val diff --git a/addons/website_event_track/models/event_event.py b/addons/website_event_track/models/event_event.py index bf9473b7d9f..51ff629e690 100644 --- a/addons/website_event_track/models/event_event.py +++ b/addons/website_event_track/models/event_event.py @@ -81,6 +81,28 @@ class Event(models.Model): for event in self: event.tracks_tag_ids = event.track_ids.mapped('tag_ids').filtered(lambda tag: tag.color != 0).ids + def write(self, values): + track_activated = self.filtered(lambda event: event.website_track) + track_deactivated = self.filtered(lambda event: not event.website_track) + track_proposal_activated = self.filtered(lambda event: event.website_track_proposal) + track_proposal_deactivated = self.filtered(lambda event: not event.website_track_proposal) + super(Event, self).write(values) + to_deactivate = track_activated.filtered(lambda event: not event.website_track) + to_activate = track_deactivated.filtered(lambda event: event.website_track) + track_proposal_to_deactivate = track_proposal_activated.filtered(lambda event: not event.website_track_proposal) + track_proposal_to_activate = track_proposal_deactivated.filtered(lambda event: event.website_track_proposal) + (to_activate | to_deactivate | track_proposal_to_activate | track_proposal_to_deactivate)._update_website_menus() + + # ------------------------------------------------------------ + # WEBSITE MENU MANAGEMENT + # ------------------------------------------------------------ + + def toggle_website_track(self, val): + self.website_track = val + + def toggle_website_track_proposal(self, val): + self.website_track_proposal = val + def _update_website_menus(self): super(Event, self)._update_website_menus() for event in self: @@ -105,18 +127,6 @@ class Event(models.Model): elif not event.website_track_proposal: event.track_proposal_menu_ids.mapped('menu_id').unlink() - def write(self, values): - track_activated = self.filtered(lambda event: event.website_track) - track_deactivated = self.filtered(lambda event: not event.website_track) - track_proposal_activated = self.filtered(lambda event: event.website_track_proposal) - track_proposal_deactivated = self.filtered(lambda event: not event.website_track_proposal) - super(Event, self).write(values) - to_deactivate = track_activated.filtered(lambda event: not event.website_track) - to_activate = track_deactivated.filtered(lambda event: event.website_track) - track_proposal_to_deactivate = track_proposal_activated.filtered(lambda event: not event.website_track_proposal) - track_proposal_to_activate = track_proposal_deactivated.filtered(lambda event: event.website_track_proposal) - (to_activate | to_deactivate | track_proposal_to_activate | track_proposal_to_deactivate)._update_website_menus() - def _get_track_menu_entries(self): self.ensure_one() res = [ @@ -128,9 +138,3 @@ class Event(models.Model): self.ensure_one() res = [(_('Talk Proposals'), '/event/%s/track_proposal' % slug(self), False, 'track_proposal')] return res - - def toggle_website_track(self, val): - self.website_track = val - - def toggle_website_track_proposal(self, val): - self.website_track_proposal = val