diff --git a/addons/website_event_online/__manifest__.py b/addons/website_event_online/__manifest__.py
index 227aaa50f93..46ad6a7d2b2 100644
--- a/addons/website_event_online/__manifest__.py
+++ b/addons/website_event_online/__manifest__.py
@@ -15,6 +15,7 @@
],
'data': [
'security/ir.model.access.csv',
+ 'views/event_event_views.xml',
'views/event_registration_views.xml',
'views/website_visitor_views.xml',
],
diff --git a/addons/website_event_online/models/__init__.py b/addons/website_event_online/models/__init__.py
index ea59b0afad8..fa937cadda2 100644
--- a/addons/website_event_online/models/__init__.py
+++ b/addons/website_event_online/models/__init__.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from . import event_event
from . import event_registration
from . import website_visitor
diff --git a/addons/website_event_online/models/event_event.py b/addons/website_event_online/models/event_event.py
new file mode 100644
index 00000000000..9c7d1680f77
--- /dev/null
+++ b/addons/website_event_online/models/event_event.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import models, _
+from odoo.addons.http_routing.models.ir_http import slug
+
+
+class Event(models.Model):
+ _name = 'event.event'
+ _inherit = 'event.event'
+
+ # ------------------------------------------------------------
+ # WEBSITE MENU MANAGEMENT
+ # ------------------------------------------------------------
+
+ def _get_menu_entries(self):
+ """ Deprecate old method as a new one with more information is used
+ starting with website_event_online module. """
+ return []
+
+ def _get_menu_entries_online(self):
+ """ Method returning menu entries to display on the website view of the
+ event, possibly depending on some options in inheriting modules.
+
+ Each menu entry is a tuple containing :
+ * name: menu item name
+ * url: if set, url to a route (do not use xml_id in that case);
+ * xml_id: template linked to the page (do not use url in that case);
+ * sequence: specific sequence of menu entry to be set on the menu;
+ * menu_type: type of menu entry (used in inheriting modules to ease
+ menu management; not used in this module in 13.3 due to technical
+ limitations);
+ """
+ self.ensure_one()
+ return [
+ (_('Introduction'), False, 'website_event.template_intro', 1, False),
+ (_('Location'), False, 'website_event.template_location', 50, False),
+ (_('Register'), '/event/%s/register' % slug(self), False, 100, False),
+ ]
+
+ def _update_website_menus(self, menus_update_by_field=None):
+ """ Synchronize event configuration and its menu entries for frontend. """
+ super(Event, self)._update_website_menus(menus_update_by_field=menus_update_by_field)
+ for event in self:
+ if event.website_menu and (not menus_update_by_field or event in menus_update_by_field.get('website_menu')):
+ for name, url, xml_id, menu_sequence, menu_type in event._get_menu_entries_online():
+ event._create_menu(menu_sequence, name, url, xml_id, menu_type=menu_type)
diff --git a/addons/website_event_online/views/event_event_views.xml b/addons/website_event_online/views/event_event_views.xml
new file mode 100644
index 00000000000..e968ea1e903
--- /dev/null
+++ b/addons/website_event_online/views/event_event_views.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ event.event.view.form.inherit.online
+ event.event
+
+
+
+