diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website_event_track_live/controllers | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_event_track_live/controllers')
3 files changed, 61 insertions, 0 deletions
diff --git a/addons/website_event_track_live/controllers/__init__.py b/addons/website_event_track_live/controllers/__init__.py new file mode 100644 index 00000000..df58fe95 --- /dev/null +++ b/addons/website_event_track_live/controllers/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import track_live +from . import session diff --git a/addons/website_event_track_live/controllers/session.py b/addons/website_event_track_live/controllers/session.py new file mode 100644 index 00000000..ea8cc541 --- /dev/null +++ b/addons/website_event_track_live/controllers/session.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import re + +from odoo.addons.website_event_track.controllers.event_track import EventTrackController +from odoo.http import request + + +class WebsiteEventSessionLiveController(EventTrackController): + + def _event_track_page_get_values(self, event, track, **options): + if 'widescreen' not in options: + options['widescreen'] = bool(track.youtube_video_url) + values = super(WebsiteEventSessionLiveController, self)._event_track_page_get_values(event, track, **options) + # Youtube disables the chat embed on all mobile devices + # This regex is a naive attempt at matching their behavior (should work for most cases) + values['is_mobile_chat_disabled'] = bool(re.match( + r'^.*(Android|iPad|iPhone).*', + request.httprequest.headers.get('User-Agent', request.httprequest.headers.get('user-agent', '')))) + return values diff --git a/addons/website_event_track_live/controllers/track_live.py b/addons/website_event_track_live/controllers/track_live.py new file mode 100644 index 00000000..1fcbba24 --- /dev/null +++ b/addons/website_event_track_live/controllers/track_live.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import http + +from odoo.addons.website_event_track.controllers.event_track import EventTrackController + + +class EventTrackLiveController(EventTrackController): + + @http.route('/event_track/get_track_suggestion', type='json', auth='public', website=True) + def get_next_track_suggestion(self, track_id): + track = self._fetch_track(track_id) + track_suggestion = track._get_track_suggestions( + restrict_domain=[('youtube_video_url', '!=', False), ('is_published', '=', True)], + limit=1) + if not track_suggestion: + return False + track_suggestion_sudo = track_suggestion.sudo() + track_sudo = track.sudo() + return self._prepare_track_suggestion_values(track_sudo, track_suggestion_sudo) + + def _prepare_track_suggestion_values(self, track, track_suggestion): + return { + 'current_track': { + 'name': track.name, + 'website_image_url': track.website_image_url, + }, + 'suggestion': { + 'id': track_suggestion.id, + 'name': track_suggestion.name, + 'speaker_name': track_suggestion.partner_name, + 'website_url': track_suggestion.website_url + } + } |
