[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
This commit is contained in:
Thibault Delavallée
2020-07-23 09:55:01 +00:00
parent 309d090ff1
commit 1db746419f
2 changed files with 33 additions and 21 deletions
+11 -3
View File
@@ -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
@@ -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