summaryrefslogtreecommitdiff
path: root/addons/website_sale_coupon/controllers
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_sale_coupon/controllers
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_sale_coupon/controllers')
-rw-r--r--addons/website_sale_coupon/controllers/__init__.py4
-rw-r--r--addons/website_sale_coupon/controllers/main.py36
2 files changed, 40 insertions, 0 deletions
diff --git a/addons/website_sale_coupon/controllers/__init__.py b/addons/website_sale_coupon/controllers/__init__.py
new file mode 100644
index 00000000..5d4b25db
--- /dev/null
+++ b/addons/website_sale_coupon/controllers/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import main
diff --git a/addons/website_sale_coupon/controllers/main.py b/addons/website_sale_coupon/controllers/main.py
new file mode 100644
index 00000000..0ce95b59
--- /dev/null
+++ b/addons/website_sale_coupon/controllers/main.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+from odoo import http
+from odoo.addons.website_sale.controllers.main import WebsiteSale
+from odoo.http import request
+
+
+class WebsiteSale(WebsiteSale):
+
+ @http.route(['/shop/pricelist'])
+ def pricelist(self, promo, **post):
+ order = request.website.sale_get_order()
+ coupon_status = request.env['sale.coupon.apply.code'].sudo().apply_coupon(order, promo)
+ if coupon_status.get('not_found'):
+ return super(WebsiteSale, self).pricelist(promo, **post)
+ elif coupon_status.get('error'):
+ request.session['error_promo_code'] = coupon_status['error']
+ return request.redirect(post.get('r', '/shop/cart'))
+
+ @http.route(['/shop/payment'], type='http', auth="public", website=True)
+ def payment(self, **post):
+ order = request.website.sale_get_order()
+ order.recompute_coupon_lines()
+ return super(WebsiteSale, self).payment(**post)
+
+ @http.route(['/shop/cart'], type='http', auth="public", website=True)
+ def cart(self, access_token=None, revive='', **post):
+ order = request.website.sale_get_order()
+ order.recompute_coupon_lines()
+ return super(WebsiteSale, self).cart(access_token=access_token, revive=revive, **post)
+
+ # Override
+ # Add in the rendering the free_shipping_line
+ def _get_shop_payment_values(self, order, **kwargs):
+ values = super(WebsiteSale, self)._get_shop_payment_values(order, **kwargs)
+ values['free_shipping_lines'] = order._get_free_shipping_lines()
+ return values