[FIX] website_slides: no completion for public user

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>
This commit is contained in:
qmo-odoo
2019-03-12 15:36:50 +00:00
committed by jem-odoo
parent fd78a40836
commit 24d30331d6
3 changed files with 9 additions and 5 deletions
@@ -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
@@ -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"
@@ -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>