From 24d30331d6278ba305ac773367beaf071bd55f70 Mon Sep 17 00:00:00 2001
From: qmo-odoo <qmo@odoo.com>
Date: Tue, 12 Mar 2019 13:59:56 +0000
Subject: [PATCH] [FIX] website_slides: no completion for public user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When a slide is seen by user, it should be marked as completed
(according to its type), and the user completion for the course
is updated. But for public user, we don't want those RPC calls
to be done, as completion for visitor makes no sense.
This commit also hide progressbar when current user is public.

Task-1942852

closes odoo/odoo#31700

Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
---
 .../static/src/js/slides_course_fullscreen_player.js   | 10 +++++++---
 .../views/website_slides_templates_lesson.xml          |  2 +-
 .../website_slides_templates_lesson_fullscreen.xml     |  2 +-
 3 files changed, 9 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 f8c34ee222f3..3a8d0165a528 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
@@ -7,6 +7,8 @@ odoo.define('website_slides.fullscreen', function (require) {
     var core = require('web.core');
     var QWeb = core.qweb;
 
+    var session = require('web.session');
+
     var Quiz = require('website_slides.quiz');
 
 
@@ -485,7 +487,7 @@ odoo.define('website_slides.fullscreen', function (require) {
                 self.$('.o_wslides_fs_slide_title').html(QWeb.render('website.slides.fullscreen.title', {widget: self}));
                 return self._renderSlide();
             }).then(function() {
-                if (slide._autoSetDone) {
+                if (slide._autoSetDone && !session.is_website_user) {  // no useless RPC call
                     self._setCompleted(slide.id);
                 }
                 self._pushUrlState();
@@ -512,8 +514,10 @@ odoo.define('website_slides.fullscreen', function (require) {
          * @private
          */
         _onSlideCompleted: function (ev) {
-            var slideId = ev.data.id;
-            this._setCompleted(slideId);
+            if (!session.is_website_user) {  // no useless RPC call
+                var slideId = ev.data.id;
+                this._setCompleted(slideId);
+            }
         },
         /**
          * Go the next slide
diff --git a/addons/website_slides/views/website_slides_templates_lesson.xml b/addons/website_slides/views/website_slides_templates_lesson.xml
index 67338fbe190c..225d3ecdc483 100644
--- a/addons/website_slides/views/website_slides_templates_lesson.xml
+++ b/addons/website_slides/views/website_slides_templates_lesson.xml
@@ -18,7 +18,7 @@
                                     class="text-white"
                                     t-field="slide.channel_id.name"/>
                             </h3>
-                            <div class="d-flex align-items-center">
+                            <div t-if="not is_public_user" class="d-flex align-items-center">
                                 <div class="progress w-50" style="height: 8px;">
                                     <div class="progress-bar rounded" role="progressbar"
                                         t-att-aria-valuenow="slide.channel_id.completion" aria-valuemin="0" aria-valuemax="100"
diff --git a/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml b/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml
index 8285a76bacdf..43874d74224f 100644
--- a/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml
+++ b/addons/website_slides/views/website_slides_templates_lesson_fullscreen.xml
@@ -35,7 +35,7 @@
                         <a t-attf-href="/slides/#{slug(slide.channel_id)}">
                             <span class="h3" t-field="slide.channel_id.name"/>
                         </a>
-                        <div class="mt-2">
+                        <div t-if="not is_public_user" class="mt-2">
                             <div class="progress">
                                 <div class="progress-bar" role="progressbar" t-attf-style="width: #{slide.channel_id.completion}%" t-att-aria-valuenow="slide.channel_id.completion" aria-valuemin="0" aria-valuemax="100"></div>
                             </div>
-- 
GitLab