diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-21 13:34:37 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-21 17:30:13 +0000 |
| commit | 4bbb36bd7fbd4e4371e860b36a9eb2ce9b4eaf1f (patch) | |
| tree | 7366dc933315a88db6aefcd6a1286194dbb27476 /addons | |
| parent | de8a5652b27da2f659b1378831c6d712ff40b488 (diff) | |
[IMP] (website_)event: ease configuration of Online features
PURPOSE
Clean organization and models linked to Event Online feature introduced in
semi stable saas-13.3 at odoo/odoo@981f95b and odoo/enterprise@1472202
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
Allow to configure Menu CTA button on event from event_type, like other
frontend related menus and buttons.
Add settings to ease discovering and installing sub event features like
* meet;
* exhibitor;
* live mode;
* quizzes;
LINKS
Task ID-2319779
COM odoo/odoo#56067
ENT odoo/enterprise#12520
UPG odoo/upgrade#1654
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/event/models/res_config_settings.py | 4 | ||||
| -rw-r--r-- | addons/event/views/res_config_settings_views.xml | 38 | ||||
| -rw-r--r-- | addons/website_event/models/event_event.py | 10 | ||||
| -rw-r--r-- | addons/website_event/models/event_type.py | 8 | ||||
| -rw-r--r-- | addons/website_event/views/event_type_views.xml | 10 |
5 files changed, 67 insertions, 3 deletions
diff --git a/addons/event/models/res_config_settings.py b/addons/event/models/res_config_settings.py index 69201cdbd2d..15af322830c 100644 --- a/addons/event/models/res_config_settings.py +++ b/addons/event/models/res_config_settings.py @@ -6,7 +6,11 @@ class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' module_event_sale = fields.Boolean("Tickets") + module_website_event_meet = fields.Boolean("Discussion Rooms") module_website_event_track = fields.Boolean("Tracks and Agenda") + module_website_event_track_live = fields.Boolean("Live Mode") + module_website_event_track_quiz = fields.Boolean("Quiz on Tracks") + module_website_event_track_exhibitor = fields.Boolean("Advanced Sponsors") module_website_event_questions = fields.Boolean("Registration Survey") module_event_barcode = fields.Boolean("Barcode") module_website_event_sale = fields.Boolean("Online Ticketing") diff --git a/addons/event/views/res_config_settings_views.xml b/addons/event/views/res_config_settings_views.xml index 8636b17efa3..9e70837b7a3 100644 --- a/addons/event/views/res_config_settings_views.xml +++ b/addons/event/views/res_config_settings_views.xml @@ -22,6 +22,44 @@ <div class="text-muted"> Manage & publish a schedule with tracks </div> + <div class="mt-3 d-flex" attrs="{'invisible': [('module_website_event_track', '=', False)]}"> + <field name="module_website_event_track_live" class="w-auto"/> + <div> + <label string="Live Mode" for="module_website_event_track_live"/><br/> + <span class="text-muted">Youtube support, Chat</span> + </div> + </div> + <div class="mt-3 d-flex" attrs="{'invisible': [('module_website_event_track', '=', False)]}"> + <field name="module_website_event_track_quiz" class="w-auto"/> + <div> + <label string="Quizzes on tracks" for="module_website_event_track_quiz"/><br/> + <span class="text-muted">Quizzes, leaderboard</span> + </div> + </div> + </div> + </div> + <div class="col-12 col-lg-6 o_setting_box"> + <div> + <div class="o_setting_left_pane"> + <field name="module_website_event_meet"/> + </div> + <div class="o_setting_right_pane"> + <label string="Discussion Rooms" for="module_website_event_meet"/> + <div class="text-muted"> + Integrate discussion rooms + </div> + </div> + </div> + <div class="mt-3"> + <div class="o_setting_left_pane"> + <field name="module_website_event_track_exhibitor"/> + </div> + <div class="o_setting_right_pane"> + <label string="Advanced Sponsors" for="module_website_event_track_exhibitor"/> + <div class="text-muted"> + Chat, advanced exhibitors + </div> + </div> </div> </div> </div> diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index 162cdf8cd55..72f8096b5a1 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -123,10 +123,16 @@ class Event(models.Model): elif not event.website_menu: event.community_menu = False - @api.depends('website_menu') + @api.depends("event_type_id", "website_menu") def _compute_menu_register_cta(self): + """ At type onchange: synchronize. At website_menu update: synchronize. """ for event in self: - event.menu_register_cta = event.website_menu + if event.event_type_id and event.event_type_id != event._origin.event_type_id: + event.menu_register_cta = event.event_type_id.menu_register_cta + elif event.website_menu and event.website_menu != event._origin.website_menu or not event.menu_register_cta: + event.menu_register_cta = True + elif not event.website_menu: + event.menu_register_cta = False @api.depends('date_begin', 'date_end') def _compute_time_data(self): diff --git a/addons/website_event/models/event_type.py b/addons/website_event/models/event_type.py index b89d3af9518..43acf03360b 100644 --- a/addons/website_event/models/event_type.py +++ b/addons/website_event/models/event_type.py @@ -13,8 +13,16 @@ class EventType(models.Model): "Community Menu", compute="_compute_community_menu", readonly=False, store=True, help="Display community tab on website") + menu_register_cta = fields.Boolean( + 'Add Register Button', compute='_compute_menu_register_cta', + readonly=False, store=True) @api.depends('website_menu') def _compute_community_menu(self): for event_type in self: event_type.community_menu = event_type.website_menu + + @api.depends('website_menu') + def _compute_menu_register_cta(self): + for event_type in self: + event_type.menu_register_cta = event_type.website_menu diff --git a/addons/website_event/views/event_type_views.xml b/addons/website_event/views/event_type_views.xml index e35070a93ab..60d09caee79 100644 --- a/addons/website_event/views/event_type_views.xml +++ b/addons/website_event/views/event_type_views.xml @@ -19,7 +19,15 @@ website: registrations, schedule, map, ... </div> </div> - <div id="community-menu" class="row mt16" groups="base.group_no_one" attrs="{'invisible': [('website_menu', '=', False)]}"> + <div class="row mt16" name="menu_register_cta" + groups="base.group_no_one" + attrs="{'invisible': [('website_menu', '=', False)]}"> + <label class="col-lg-4" for="menu_register_cta"/> <field name="menu_register_cta"/> + </div> + <div class="row mt16" name="community_menu" + id="community-menu" + groups="base.group_no_one" + attrs="{'invisible': [('website_menu', '=', False)]}"> <label class="col-lg-4" for="community_menu"/> <field name="community_menu"/> </div> </div> |
