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 + + + +
+
+
+
+
+ +
diff --git a/addons/website_event_track_online/__manifest__.py b/addons/website_event_track_online/__manifest__.py index c85e7abeea5..9148c7169a3 100644 --- a/addons/website_event_track_online/__manifest__.py +++ b/addons/website_event_track_online/__manifest__.py @@ -18,6 +18,7 @@ 'data': [ 'security/ir.model.access.csv', 'views/assets.xml', + 'views/event_event_views.xml', 'views/event_track_templates_reminder.xml', 'views/event_track_templates.xml', 'views/event_track_views.xml', diff --git a/addons/website_event_track_online/models/__init__.py b/addons/website_event_track_online/models/__init__.py index 645b184349c..33e6632706b 100644 --- a/addons/website_event_track_online/models/__init__.py +++ b/addons/website_event_track_online/models/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import event_event from . import event_track_visitor from . import event_track from . import website_visitor diff --git a/addons/website_event_track_online/models/event_event.py b/addons/website_event_track_online/models/event_event.py new file mode 100644 index 00000000000..1687967c00b --- /dev/null +++ b/addons/website_event_track_online/models/event_event.py @@ -0,0 +1,27 @@ +# -*- 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 EventEvent(models.Model): + _inherit = "event.event" + + # ------------------------------------------------------------ + # WEBSITE MENU MANAGEMENT + # ------------------------------------------------------------ + + # OVERRIDES: ADD SEQUENCE + def _get_track_menu_entries(self): + """ Remove agenda as this is now managed separately """ + self.ensure_one() + return [ + (_('Talks'), '/event/%s/track' % slug(self), False, 10, 'track'), + (_('Agenda'), '/event/%s/agenda' % slug(self), False, 70, 'track') + ] + + def _get_track_proposal_menu_entries(self): + """ See website_event_track._get_track_menu_entries() """ + self.ensure_one() + return [(_('Talk Proposals'), '/event/%s/track_proposal' % slug(self), False, 15, 'track_proposal')] diff --git a/addons/website_event_track_online/static/src/js/website_event_customize_options.js b/addons/website_event_track_online/static/src/js/website_event_customize_options.js new file mode 100644 index 00000000000..d86ef9db4b2 --- /dev/null +++ b/addons/website_event_track_online/static/src/js/website_event_customize_options.js @@ -0,0 +1,13 @@ +odoo.define('website_event_track_online.set_customize_options', function (require) { +"use strict"; + +var EventSpecificOptions = require('website_event.set_customize_options').EventSpecificOptions; + +EventSpecificOptions.include({ + xmlDependencies: (EventSpecificOptions.prototype.xmlDependencies || []) + .concat([ + '/website_event_track_online/static/src/xml/website_event_customize_options.xml', + ]), +}); + +}); diff --git a/addons/website_event_track_online/static/src/xml/website_event_customize_options.xml b/addons/website_event_track_online/static/src/xml/website_event_customize_options.xml new file mode 100644 index 00000000000..22d5e2fd836 --- /dev/null +++ b/addons/website_event_track_online/static/src/xml/website_event_customize_options.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/addons/website_event_track_online/views/assets.xml b/addons/website_event_track_online/views/assets.xml index ca095992bb0..6fc02ebf98c 100644 --- a/addons/website_event_track_online/views/assets.xml +++ b/addons/website_event_track_online/views/assets.xml @@ -7,6 +7,7 @@ + diff --git a/addons/website_event_track_online/views/event_event_views.xml b/addons/website_event_track_online/views/event_event_views.xml new file mode 100644 index 00000000000..0f95fc80b9b --- /dev/null +++ b/addons/website_event_track_online/views/event_event_views.xml @@ -0,0 +1,18 @@ + + + + + event.event.view.from.inherit.track.online + event.event + + + + + + + + diff --git a/addons/website_event_track_online/views/event_track_templates.xml b/addons/website_event_track_online/views/event_track_templates.xml index 6ca0cfbc5de..1d6c198eda0 100644 --- a/addons/website_event_track_online/views/event_track_templates.xml +++ b/addons/website_event_track_online/views/event_track_templates.xml @@ -1,6 +1,15 @@ + + + + + + + + +