From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- addons/website_event_track_live_quiz/__init__.py | 4 ++ .../website_event_track_live_quiz/__manifest__.py | 30 +++++++++++ .../controllers/__init__.py | 4 ++ .../controllers/track_live_quiz.py | 12 +++++ .../static/src/js/event_quiz.js | 58 ++++++++++++++++++++++ .../src/js/website_event_track_suggestion.js | 34 +++++++++++++ .../src/xml/website_event_track_live_templates.xml | 14 ++++++ .../src/xml/website_event_track_quiz_templates.xml | 14 ++++++ .../website_event_track_live_quiz/views/assets.xml | 11 ++++ .../views/event_track_templates_page.xml | 12 +++++ 10 files changed, 193 insertions(+) create mode 100644 addons/website_event_track_live_quiz/__init__.py create mode 100644 addons/website_event_track_live_quiz/__manifest__.py create mode 100644 addons/website_event_track_live_quiz/controllers/__init__.py create mode 100644 addons/website_event_track_live_quiz/controllers/track_live_quiz.py create mode 100644 addons/website_event_track_live_quiz/static/src/js/event_quiz.js create mode 100644 addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js create mode 100644 addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml create mode 100644 addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml create mode 100644 addons/website_event_track_live_quiz/views/assets.xml create mode 100644 addons/website_event_track_live_quiz/views/event_track_templates_page.xml (limited to 'addons/website_event_track_live_quiz') diff --git a/addons/website_event_track_live_quiz/__init__.py b/addons/website_event_track_live_quiz/__init__.py new file mode 100644 index 00000000..dd15b5c3 --- /dev/null +++ b/addons/website_event_track_live_quiz/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import controllers diff --git a/addons/website_event_track_live_quiz/__manifest__.py b/addons/website_event_track_live_quiz/__manifest__.py new file mode 100644 index 00000000..1bcbf800 --- /dev/null +++ b/addons/website_event_track_live_quiz/__manifest__.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +{ + 'name': 'Quiz on Live Event Tracks', + 'category': 'Hidden', + 'version': '1.0', + 'summary': 'Bridge module to support quiz features during "live" tracks. ', + 'website': 'https://www.odoo.com/page/events', + 'description': "", + 'depends': [ + 'website_event_track_live', + 'website_event_track_quiz', + ], + 'data': [ + 'views/assets.xml', + 'views/event_track_templates_page.xml', + ], + 'demo': [ + ], + 'qweb': [ + 'static/src/xml/website_event_track_live_templates.xml', + 'static/src/xml/website_event_track_quiz_templates.xml', + ], + 'application': False, + 'installable': True, + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/addons/website_event_track_live_quiz/controllers/__init__.py b/addons/website_event_track_live_quiz/controllers/__init__.py new file mode 100644 index 00000000..b4c6a301 --- /dev/null +++ b/addons/website_event_track_live_quiz/controllers/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import track_live_quiz diff --git a/addons/website_event_track_live_quiz/controllers/track_live_quiz.py b/addons/website_event_track_live_quiz/controllers/track_live_quiz.py new file mode 100644 index 00000000..28279830 --- /dev/null +++ b/addons/website_event_track_live_quiz/controllers/track_live_quiz.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.website_event_track_live.controllers.track_live import EventTrackLiveController + + +class EventTrackLiveQuizController(EventTrackLiveController): + + def _prepare_track_suggestion_values(self, track, track_suggestion): + res = super(EventTrackLiveQuizController, self)._prepare_track_suggestion_values(track, track_suggestion) + res['current_track']['show_quiz'] = bool(track.quiz_id) and not track.is_quiz_completed + return res diff --git a/addons/website_event_track_live_quiz/static/src/js/event_quiz.js b/addons/website_event_track_live_quiz/static/src/js/event_quiz.js new file mode 100644 index 00000000..2fd34e66 --- /dev/null +++ b/addons/website_event_track_live_quiz/static/src/js/event_quiz.js @@ -0,0 +1,58 @@ +odoo.define('website_event_track_live_quiz.event_quiz', function (require) { +'use strict'; + +var Quiz = require('website_event_track_quiz.event.quiz'); + +var WebsiteEventTrackSuggestionQuiz = Quiz.include({ + xmlDependencies: Quiz.prototype.xmlDependencies.concat([ + '/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml', + ]), + + /** + * @override + */ + willStart: function () { + return Promise.all([ + this._super(...arguments), + this._getTrackSuggestion() + ]); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + _submitQuiz: function () { + var self = this; + return this._super(...arguments).then(function (data) { + if (data.quiz_completed) { + self.$('.o_quiz_js_quiz_next_track') + .removeClass('btn-light') + .addClass('btn-secondary'); + } + + return Promise.resolve(data); + }); + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + _getTrackSuggestion: function () { + var self = this; + return this._rpc({ + route: '/event_track/get_track_suggestion', + params: { + track_id: this.track.id, + } + }).then(function (suggestion) { + self.nextSuggestion = suggestion; + return Promise.resolve(); + }); + } +}); + +return WebsiteEventTrackSuggestionQuiz; + +}); diff --git a/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js b/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js new file mode 100644 index 00000000..17f98f9b --- /dev/null +++ b/addons/website_event_track_live_quiz/static/src/js/website_event_track_suggestion.js @@ -0,0 +1,34 @@ +odoo.define('website_event_track_live_quiz.website_event_track_suggestion', function (require) { +'use strict'; + +var WebsiteEventTrackSuggestion = require('website_event_track_live.website_event_track_suggestion'); + +var WebsiteEventTrackSuggestionLiveQuiz = WebsiteEventTrackSuggestion.include({ + xmlDependencies: WebsiteEventTrackSuggestion.prototype.xmlDependencies.concat([ + '/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml', + ]), + events: _.extend({}, WebsiteEventTrackSuggestion.prototype.events, { + 'click .owevent_track_suggestion_quiz': '_onQuizClick' + }), + + init: function (parent, options) { + this._super(...arguments); + this.currentTrack.showQuiz = options.current_track.show_quiz; + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * If the user takes the quiz, stop the next suggestion timer + */ + _onQuizClick: function () { + clearInterval(this.timerInterval); + this.$('.owevent_track_suggestion_timer_text_wrapper').remove(); + } +}); + +return WebsiteEventTrackSuggestionLiveQuiz; + +}); diff --git a/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml new file mode 100644 index 00000000..91c37f78 --- /dev/null +++ b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_live_templates.xml @@ -0,0 +1,14 @@ + + + + + + + Take the Quiz + + + + + diff --git a/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml new file mode 100644 index 00000000..a1524d14 --- /dev/null +++ b/addons/website_event_track_live_quiz/static/src/xml/website_event_track_quiz_templates.xml @@ -0,0 +1,14 @@ + + + + + + + Next Track + + + + + diff --git a/addons/website_event_track_live_quiz/views/assets.xml b/addons/website_event_track_live_quiz/views/assets.xml new file mode 100644 index 00000000..7609ee3c --- /dev/null +++ b/addons/website_event_track_live_quiz/views/assets.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/addons/website_event_track_live_quiz/views/event_track_templates_page.xml b/addons/website_event_track_live_quiz/views/event_track_templates_page.xml new file mode 100644 index 00000000..7bd968af --- /dev/null +++ b/addons/website_event_track_live_quiz/views/event_track_templates_page.xml @@ -0,0 +1,12 @@ + + + + + + -- cgit v1.2.3