From b046f21b59883f52dee524c8a4ca3b2aab70fd8b Mon Sep 17 00:00:00 2001 From: std-odoo Date: Wed, 11 Oct 2023 10:01:17 +0200 Subject: [PATCH] [IMP] website_sale_slides: ensure login after purchase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Purpose ======= If we buy a course without being logged in, we are redirected to a page with a button "Start Learning". That button redirects to the course we just purchased. Instead, we want to redirect the users to the login page, and after that to the course page. Task-3544591 closes odoo/odoo#143899 X-original-commit: cbe570e107e9a27e43d35f40071323f5443c1999 Signed-off-by: Warnon Aurélien (awa) Signed-off-by: Stéphane Debauche (std) --- .../controllers/__init__.py | 1 + .../website_sale_slides/controllers/sale.py | 21 +++++++++++++++++++ .../views/website_sale_templates.xml | 5 +++-- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 addons/website_sale_slides/controllers/sale.py diff --git a/addons/website_sale_slides/controllers/__init__.py b/addons/website_sale_slides/controllers/__init__.py index d4fd554ab5c..2367fdda677 100644 --- a/addons/website_sale_slides/controllers/__init__.py +++ b/addons/website_sale_slides/controllers/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import sale from . import slides diff --git a/addons/website_sale_slides/controllers/sale.py b/addons/website_sale_slides/controllers/sale.py new file mode 100644 index 00000000000..7f3ca31ea55 --- /dev/null +++ b/addons/website_sale_slides/controllers/sale.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.http import request +from odoo.addons.website_sale.controllers.main import WebsiteSale + + +class WebsiteSaleSlides(WebsiteSale): + + def _prepare_shop_payment_confirmation_values(self, order): + values = super()._prepare_shop_payment_confirmation_values(order) + if order.order_line.product_id.channel_ids: + channel_partners = request.env['slide.channel.partner'].sudo().search([ + ('partner_id', '=', order.partner_id.id), + ('channel_id', 'in', order.order_line.product_id.channel_ids.ids), + ]) + values['course_memberships'] = { + channel_partner.channel_id: channel_partner + for channel_partner in channel_partners + } + return values diff --git a/addons/website_sale_slides/views/website_sale_templates.xml b/addons/website_sale_slides/views/website_sale_templates.xml index 31d755e40c5..da20157fdd0 100644 --- a/addons/website_sale_slides/views/website_sale_templates.xml +++ b/addons/website_sale_slides/views/website_sale_templates.xml @@ -21,8 +21,9 @@ +
-

+

@@ -30,7 +31,7 @@ - step(s)
- + Start Learning