From 10e162d3f16c6f8abc34d73ad5986a637ab4e7ca Mon Sep 17 00:00:00 2001 From: qmo-odoo Date: Fri, 24 Jul 2020 08:35:53 +0000 Subject: [PATCH] [ADD] website_event_meet_quiz: integrate quiz within meet "Community" page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RATIONALE Events are sometimes held online, gathering a community. In this merge we improve Event application to better support full-online events with improved tracks, wishlists, chat rooms, ... PURPOSE This bridge module enables a better integration of the quiz features within the website_event_meet "Community" frontend page. SPECS As both quiz and meet share the "Community" frontend page, this bridge adds a small block on the existing meet template to display the top 3 of the quiz leaderboard. A link on that block allows users to reach the full leaderboard page where they can see their own position and perform a simple search for other attendees. LINKS Task ID-2252655 (Main Online Event task) Task ID-2283771 (Quizzes on Talks, Leaderboard) Task ID-2283742 (Community gathering on chat rooms) Co-Authored-By: Aurélien Warnon Co-Authored-By: David Beguin Co-Authored-By: Quentin Mourier Co-Authored-By: Stéphane Debauche Co-Authored-By: Thibault Delavallée --- addons/website_event_meet_quiz/__init__.py | 2 + .../website_event_meet_quiz/__manifest__.py | 1 + .../controllers/__init__.py | 4 ++ .../controllers/community.py | 23 ++++++++++ .../views/event_meet_templates.xml | 46 +++++++++++++++++++ 5 files changed, 76 insertions(+) create mode 100644 addons/website_event_meet_quiz/controllers/__init__.py create mode 100644 addons/website_event_meet_quiz/controllers/community.py create mode 100644 addons/website_event_meet_quiz/views/event_meet_templates.xml diff --git a/addons/website_event_meet_quiz/__init__.py b/addons/website_event_meet_quiz/__init__.py index 67dee8c60db..dd15b5c32e5 100644 --- a/addons/website_event_meet_quiz/__init__.py +++ b/addons/website_event_meet_quiz/__init__.py @@ -1,2 +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_meet_quiz/__manifest__.py b/addons/website_event_meet_quiz/__manifest__.py index 00e95e9faea..bc8d83d03d8 100644 --- a/addons/website_event_meet_quiz/__manifest__.py +++ b/addons/website_event_meet_quiz/__manifest__.py @@ -15,6 +15,7 @@ 'website_event_track_quiz', ], 'data': [ + 'views/event_meet_templates.xml', ], 'demo': [ ], diff --git a/addons/website_event_meet_quiz/controllers/__init__.py b/addons/website_event_meet_quiz/controllers/__init__.py new file mode 100644 index 00000000000..677fb9d9c1d --- /dev/null +++ b/addons/website_event_meet_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 community diff --git a/addons/website_event_meet_quiz/controllers/community.py b/addons/website_event_meet_quiz/controllers/community.py new file mode 100644 index 00000000000..5086a9e1881 --- /dev/null +++ b/addons/website_event_meet_quiz/controllers/community.py @@ -0,0 +1,23 @@ +# -*- 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_online.controllers.community import WebsiteEventCommunityController +from odoo.http import request +from werkzeug.exceptions import Forbidden + + +class WebsiteEventTrackQuizMeetController(WebsiteEventCommunityController): + + @http.route(['/event//community'], type='http', auth="public", website=True, sitemap=False) + def community(self, event, page=1, lang=None, **kwargs): + if not event.can_access_from_current_website(): + raise Forbidden() + + # website_event_track_quiz + values = self._get_community_leaderboard_render_values(event, kwargs.get('search'), page) + + # website_event_meet + values.update(self._event_meeting_rooms_get_values(event, lang=lang)) + return request.render('website_event_meet.event_meet', values) diff --git a/addons/website_event_meet_quiz/views/event_meet_templates.xml b/addons/website_event_meet_quiz/views/event_meet_templates.xml new file mode 100644 index 00000000000..04b7be6b768 --- /dev/null +++ b/addons/website_event_meet_quiz/views/event_meet_templates.xml @@ -0,0 +1,46 @@ + + + + + + + + +