diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-18 13:56:08 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-21 17:30:13 +0000 |
| commit | 77d7a3cf6a2cf07e18804a2d9b59e3697b11006e (patch) | |
| tree | 435ca546a4b8eb5867dcd756e940b14e67513479 /addons/website_event_meet | |
| parent | 8da7288453d43ff6ccfd6cb6d8332eec998d3927 (diff) | |
[MOV] website_event(_track): move website event menu into website event
PURPOSE
Clean organization and models linked to Event Online feature introduced in
semi stable saas-13.3 at odoo/odoo@981f95bbf46658eda9f2d33751b9310cc67d86aa and odoo/enterprise@14722028ae0773c3710ea48ce48ff44703e83b5a
Also clean website event menu not being available in website event but only
in website event track, which implies some extra-code to manage it.
In short: merge website_event_online in website_event, website_event_track
_(online/session) in website_event_track.
RATIONALE
_online modules have been added to extend content of website_event and
website_event_track without having any impact on those module. First step
of cleaning is to move this content directly in base module.
track_session module is mainly a rewrite of track module. Second step of
cleaning is to move its content directly in website_event_track.
SPECIFICATIONS
Move website event menu model directly into website event. Website event menu
model has been introduced to help dealing with event-specific menus and
website menus. This is some kind of glue to synchronize both of them as people
could either
* update an event (website_menu, website_track) that updates website menus
availability;
* update menus through website that should update event field value and menu
computation;
Having a model introduced in website event track forces to have override and
code split across website_event, website_event_track, and now also in both
_online version of those two as menu management was improved.
In this commit we simplify all this code by moving most of menu management
code in website_event, leaving only business-specific code (fields and their
menus) to sub modules.
SPECIFICATIONS: WEBSITE EVENT MENU
Make type required as we don't support entries without type. Indeed this model
is used to automate menus generation / destruction, and not for hand-made
menus. We therefore set type as required and add a cascade ondelete for
selection.
SPECIFCIATIONS: COMMUNITY MENU
Doing this change allows to define community menu in website_event and re-use
it in website_event_meet and website_event_track_quiz, removing some
unnecessary dependencies. This menu is void in website_event, and displays
either meeting rooms (in meet) or quiz points leaderboard (in quiz), or a
mix of both if the two features are installed.
LINKS
Task ID-2319779
COM odoo/odoo#56067
ENT odoo/enterprise#12520
UPG odoo/upgrade#165
Diffstat (limited to 'addons/website_event_meet')
| -rw-r--r-- | addons/website_event_meet/controllers/community.py | 4 | ||||
| -rw-r--r-- | addons/website_event_meet/models/website_event_menu.py | 4 | ||||
| -rw-r--r-- | addons/website_event_meet/views/event_event_views.xml | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/addons/website_event_meet/controllers/community.py b/addons/website_event_meet/controllers/community.py index c653b9fa9f9..291a6017dfc 100644 --- a/addons/website_event_meet/controllers/community.py +++ b/addons/website_event_meet/controllers/community.py @@ -8,13 +8,13 @@ from werkzeug.utils import redirect from odoo import exceptions, http from odoo.http import request from odoo.addons.http_routing.models.ir_http import slug -from odoo.addons.website_event_track_online.controllers.community import WebsiteEventCommunityController +from odoo.addons.website_event.controllers.community import EventCommunityController from odoo.osv import expression _logger = logging.getLogger(__name__) -class WebsiteEventMeetController(WebsiteEventCommunityController): +class WebsiteEventMeetController(EventCommunityController): def _get_event_rooms_base_domain(self, event): search_domain_base = [('event_id', '=', event.id), ('is_published', '=', True)] diff --git a/addons/website_event_meet/models/website_event_menu.py b/addons/website_event_meet/models/website_event_menu.py index 827d3bc1fa4..0902dde05f2 100644 --- a/addons/website_event_meet/models/website_event_menu.py +++ b/addons/website_event_meet/models/website_event_menu.py @@ -7,4 +7,6 @@ from odoo import fields, models class EventMenu(models.Model): _inherit = "website.event.menu" - menu_type = fields.Selection(selection_add=[("meeting_room", "Event Meeting Room Menus")]) + menu_type = fields.Selection( + selection_add=[("meeting_room", "Event Meeting Room Menus")], + ondelete={'meeting_room': 'cascade'}) diff --git a/addons/website_event_meet/views/event_event_views.xml b/addons/website_event_meet/views/event_event_views.xml index 08d5c46e86b..798be072310 100644 --- a/addons/website_event_meet/views/event_event_views.xml +++ b/addons/website_event_meet/views/event_event_views.xml @@ -4,7 +4,7 @@ <record id="event_event_view_form" model="ir.ui.view"> <field name="name">event.event.view.form.inherit.meet</field> <field name="model">event.event</field> - <field name="inherit_id" ref="website_event_track_online.event_event_view_form"/> + <field name="inherit_id" ref="website_event.event_event_view_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='is_published']" position="before"> <button class="oe_stat_button" context="{'default_event_id': active_id, 'search_default_event_id': active_id}" icon="fa-comments-o" name="%(event_meeting_room_action)d" type="action"> |
