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  &amp;&amp; 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  &amp;&amp; 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