From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- .../static/src/js/slides_course_join.js | 46 ++++++++++++++++++++++ .../static/src/js/slides_course_quiz.js | 25 ++++++++++++ .../static/src/js/slides_course_unsubscribe.js | 12 ++++++ .../static/src/xml/slide_course_join.xml | 15 +++++++ .../static/src/xml/website_sale_slides_quiz.xml | 15 +++++++ .../static/src/xml/website_slides_unsubscribe.xml | 16 ++++++++ 6 files changed, 129 insertions(+) create mode 100644 addons/website_sale_slides/static/src/js/slides_course_join.js create mode 100644 addons/website_sale_slides/static/src/js/slides_course_quiz.js create mode 100644 addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js create mode 100644 addons/website_sale_slides/static/src/xml/slide_course_join.xml create mode 100644 addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml create mode 100644 addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml (limited to 'addons/website_sale_slides/static/src') 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 00000000..4fe1c28a --- /dev/null +++ b/addons/website_sale_slides/static/src/js/slides_course_join.js @@ -0,0 +1,46 @@ +odoo.define('website_sale_slides.course.join.widget', function (require) { +"use strict"; + +var CourseJoinWidget = require('website_slides.course.join.widget').courseJoinWidget; +const wUtils = require('website.utils'); + +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) { + this.beforeJoin().then(function () { + wUtils.sendRequest('/shop/cart/update', { + product_id: this.productId, + express: 1, + }); + }); + } 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 new file mode 100644 index 00000000..3922a631 --- /dev/null +++ b/addons/website_sale_slides/static/src/js/slides_course_quiz.js @@ -0,0 +1,25 @@ +odoo.define('website_sale_slides.quiz', function (require) { +"use strict"; + +var sAnimations = require('website.content.snippets.animation'); +var Quiz = require('website_slides.quiz').Quiz; + +sAnimations.registry.websiteSlidesQuizNoFullscreen.include({ + _extractChannelData: function (slideData) { + return _.extend({}, this._super.apply(this, arguments), { + productId: slideData.productId, + enroll: slideData.enroll, + currencyName: slideData.currencyName, + currencySymbol: slideData.currencySymbol, + price: slideData.price, + hasDiscountedPrice: slideData.hasDiscountedPrice + }); + } +}); + +Quiz.include({ + xmlDependencies: (Quiz.prototype.xmlDependencies || []).concat( + ["/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml"] + ) +}); +}); diff --git a/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js b/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js new file mode 100644 index 00000000..34449ce7 --- /dev/null +++ b/addons/website_sale_slides/static/src/js/slides_course_unsubscribe.js @@ -0,0 +1,12 @@ +odoo.define('website_sale_slides.unsubscribe_modal', function (require) { +"use strict"; + +var SlidesUnsubscribe = require('website_slides.unsubscribe_modal'); + +SlidesUnsubscribe.websiteSlidesUnsubscribe.include({ + xmlDependencies: (SlidesUnsubscribe.websiteSlidesUnsubscribe.prototype.xmlDependencies || []).concat( + ["/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml"] + ), +}); + +}); 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 00000000..404386d7 --- /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 new file mode 100644 index 00000000..a03182dd --- /dev/null +++ b/addons/website_sale_slides/static/src/xml/website_sale_slides_quiz.xml @@ -0,0 +1,15 @@ + + + + + + + Sign in and buy the course to take the quiz + + + Buy the course to validate your answers! + + + + + diff --git a/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml b/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml new file mode 100644 index 00000000..1cadfbbf --- /dev/null +++ b/addons/website_sale_slides/static/src/xml/website_slides_unsubscribe.xml @@ -0,0 +1,16 @@ + + + + + + +

+ + This course is paid.
+ Leaving the course and re-enrolling afterwards means that you'll be charged again. +

+
+
+
+ +
-- cgit v1.2.3