diff --git a/addons/website_sale_slides/data/sale_order_demo.xml b/addons/website_sale_slides/data/sale_order_demo.xml index f4efe84a1e8..1961ee1b0ce 100644 --- a/addons/website_sale_slides/data/sale_order_demo.xml +++ b/addons/website_sale_slides/data/sale_order_demo.xml @@ -38,6 +38,14 @@ sale + + + + 1 + + 150.0 + + diff --git a/addons/website_sale_slides/static/src/js/slides_course_join.js b/addons/website_sale_slides/static/src/js/slides_course_join.js new file mode 100644 index 00000000000..22ebe96da3e --- /dev/null +++ b/addons/website_sale_slides/static/src/js/slides_course_join.js @@ -0,0 +1,43 @@ +odoo.define('website_sale_slides.course.join.widget', function (require) { +"use strict"; + +var CourseJoinWidget = require('website_slides.course.join.widget').courseJoinWidget; + +CourseJoinWidget.include({ + xmlDependencies: (CourseJoinWidget.prototype.xmlDependencies || []).concat( + ["/website_sale_slides/static/src/xml/slide_course_join.xml"] + ), + init: function (parent, options) { + this._super.apply(this, arguments); + this.productId = options.channel.productId || false; + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * When the user joins the course, if it's set as "on payment" and the user is logged in, + * we redirect to the shop page for this course. + * + * @param {MouseEvent} ev + * @override + * @private + */ + _onClickJoin: function (ev) { + ev.preventDefault(); + + if (this.channel.channelEnroll === 'payment' && !this.publicUser) { + var shopUrl = _.str.sprintf('/shop/cart/update?product_id=%s&express=1', this.productId); + this.beforeJoin().then(function () { + window.location.href = shopUrl; + }); + } else { + this._super.apply(this, arguments); + } + }, +}); + +return CourseJoinWidget; + +}); diff --git a/addons/website_sale_slides/static/src/js/slides_course_quiz.js b/addons/website_sale_slides/static/src/js/slides_course_quiz.js index 1e601acc7a7..3922a631a30 100644 --- a/addons/website_sale_slides/static/src/js/slides_course_quiz.js +++ b/addons/website_sale_slides/static/src/js/slides_course_quiz.js @@ -5,7 +5,7 @@ var sAnimations = require('website.content.snippets.animation'); var Quiz = require('website_slides.quiz').Quiz; sAnimations.registry.websiteSlidesQuizNoFullscreen.include({ - _extractChannelData: function (slideData){ + _extractChannelData: function (slideData) { return _.extend({}, this._super.apply(this, arguments), { productId: slideData.productId, enroll: slideData.enroll, diff --git a/addons/website_sale_slides/static/src/xml/slide_course_join.xml b/addons/website_sale_slides/static/src/xml/slide_course_join.xml new file mode 100644 index 00000000000..404386d7c36 --- /dev/null +++ b/addons/website_sale_slides/static/src/xml/slide_course_join.xml @@ -0,0 +1,15 @@ + + + + + + + Sign in + + + Buy course + + + + + diff --git a/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml b/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml index 9392a8bff21..5a371469a49 100644 --- a/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml +++ b/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml @@ -1,43 +1,15 @@ - -
-
- Sign in and buy the course to join it and take the quiz! - - - + XP - - -
-
- Sign in - Don't have an account ? Sign Up ! -
-
-
-
- - - Buy the course - - -
- - - - -
-
-
+ + + + Sign in and buy the course to take the quiz + + + To validate your answers, buy the course! + +
diff --git a/addons/website_sale_slides/views/assets.xml b/addons/website_sale_slides/views/assets.xml index 65b544695e0..0aad00a5ae1 100644 --- a/addons/website_sale_slides/views/assets.xml +++ b/addons/website_sale_slides/views/assets.xml @@ -4,6 +4,7 @@