From 8d9c054842b5fbaa205c7658c25cf66320b8e197 Mon Sep 17 00:00:00 2001 From: qmo-odoo <qmo@odoo.com> Date: Tue, 30 Apr 2019 08:09:49 +0000 Subject: [PATCH] [FIX] website_slides: fix various quiz issues This commit fixes a few issues with quizz * change background-color to white in fullscreen mode; * prevent going up to the top of the page when selecting an answer; * highlight selected answers in fullscreen; * fix the display of already completed quizzes Commit linked to task ID 1978530 (fixes linked to internal testing). closes odoo/odoo#33140 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com> --- .../src/js/slides_course_fullscreen_player.js | 1 + .../static/src/js/slides_course_quiz.js | 1 + .../src/scss/slides_slide_fullscreen.scss | 21 ++++++++++++++++++- .../static/src/scss/website_slides.scss | 6 +++++- .../static/src/xml/slide_quiz.xml | 4 ++-- .../views/website_slides_templates_lesson.xml | 2 +- 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js index d947d455d068..784c0e57913f 100644 --- a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js +++ b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js @@ -432,6 +432,7 @@ odoo.define('website_slides.fullscreen', function (require) { // display quiz slide, or quiz attached to a slide if (slide.type === 'quiz' || slide.isQuiz) { + $content.addClass('bg-white'); var QuizWidget = new Quiz(this, slide); return QuizWidget.appendTo($content); } diff --git a/addons/website_slides/static/src/js/slides_course_quiz.js b/addons/website_slides/static/src/js/slides_course_quiz.js index 45ea9829cb0c..d1033c75f819 100644 --- a/addons/website_slides/static/src/js/slides_course_quiz.js +++ b/addons/website_slides/static/src/js/slides_course_quiz.js @@ -219,6 +219,7 @@ odoo.define('website_slides.quiz', function (require) { * @param OdooEvent ev */ _onAnswerClick: function (ev) { + ev.preventDefault(); if (! this.slide.readonly && ! this.slide.completed) { $(ev.currentTarget).find('input[type=radio]').prop('checked', true); } diff --git a/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss b/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss index 7a0e59d29609..36a173dc2550 100644 --- a/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss +++ b/addons/website_slides/static/src/scss/slides_slide_fullscreen.scss @@ -95,4 +95,23 @@ } } } -} + + .o_wslides_js_lesson_quiz_question { + .list-group-item { + font-size: 1rem; + + input:checked + i.fa-circle { + color: $primary !important; + } + } + + &.disabled { + opacity: 0.5; + pointer-events: none; + } + + &.completed-disabled{ + pointer-events: none; + } + } +} \ No newline at end of file diff --git a/addons/website_slides/static/src/scss/website_slides.scss b/addons/website_slides/static/src/scss/website_slides.scss index 8f90d98c22ae..0f64a46ea8ee 100644 --- a/addons/website_slides/static/src/scss/website_slides.scss +++ b/addons/website_slides/static/src/scss/website_slides.scss @@ -68,7 +68,11 @@ $o-wslides-fs-side-width: 300px; &.disabled { opacity: 0.5; - cursor: not-allowed; + pointer-events: none; + } + + &.completed-disabled{ + pointer-events: none; } } diff --git a/addons/website_slides/static/src/xml/slide_quiz.xml b/addons/website_slides/static/src/xml/slide_quiz.xml index 6139ae8fad69..ef884ab2007c 100644 --- a/addons/website_slides/static/src/xml/slide_quiz.xml +++ b/addons/website_slides/static/src/xml/slide_quiz.xml @@ -8,7 +8,7 @@ </div> <div t-foreach="widget.quiz.questions" t-as="question" - t-attf-class="o_wslides_js_lesson_quiz_question my-3 #{widget.slide.completed ? 'disabled' : ''}" + t-attf-class="o_wslides_js_lesson_quiz_question my-3 #{widget.readonly ? 'disabled' : ''} #{widget.slide.completed ? 'completed-disabled' : ''}" t-att-data-question-id="question.id" t-att-data-title="question.question"> <div class="h4"> <small class="text-muted"><span t-esc="question_index+1"/>. </small> <span t-esc="question.question"/> @@ -17,7 +17,7 @@ <t t-foreach="question.answers" t-as="answer"> <a t-att-data-answer-id="answer.id" href="#" t-att-data-text="answer.text_value" - t-attf-class="o_wslides_quiz_answer list-group-item d-flex align-items-center #{widget.slide.completed ? 'disabled bg-transparent' : 'list-group-item-action' } #{widget.slide.completed && answer.is_correct ? 'list-group-item-success' : '' }"> + t-attf-class="o_wslides_quiz_answer list-group-item d-flex align-items-center #{widget.readonly ? 'disabled bg-transparent' : 'list-group-item-action'} #{widget.slide.completed && answer.is_correct ? 'list-group-item-success' : '' }"> <label class="my-0 d-flex align-items-center justify-content-center mr-2"> <input type="radio" diff --git a/addons/website_slides/views/website_slides_templates_lesson.xml b/addons/website_slides/views/website_slides_templates_lesson.xml index 4e7bb7290b7c..5978d63e8b52 100644 --- a/addons/website_slides/views/website_slides_templates_lesson.xml +++ b/addons/website_slides/views/website_slides_templates_lesson.xml @@ -427,7 +427,7 @@ t-att-data-has-next="1 if next_slide else 0" t-att-data-next-slide-url="'/slides/slide/%s' % (slug(next_slide)) if next_slide else None"> <div t-foreach="slide.question_ids" t-as="question" - class="o_wslides_js_lesson_quiz_question mt-3" t-att-data-question-id="question.id" t-att-data-title="question.question"> + t-att-class="'o_wslides_js_lesson_quiz_question mt-3 %s' % ('completed-disabled' if slide_completed else ('disabled' if not slide.channel_id.is_member else ''))" t-att-data-question-id="question.id" t-att-data-title="question.question"> <div class="h4"> <small class="text-muted"><span t-esc="question_index+1"/>. </small> <span t-esc="question.question"/> </div> -- GitLab