From a19684af955b6cfecbacfb75078b8411b7a82a60 Mon Sep 17 00:00:00 2001 From: jvm-odoo Date: Wed, 20 May 2020 12:04:30 +0000 Subject: [PATCH] [FIX] website_sale_coupon_delivery: traceback when going back Issue - Install eCommerce, Delivery Costs & Delivery Coupon - Add a delivery method for US only - Publish the delivery method - Logout - Order something, select your delivery method and pay with wire transfer - When it's done, click 2 times on the browser back button Traceback Cause When going back, the order is empty and we are doing self.ensure_one() on it when looking for free shipping lines Solution Check if the order is not empty before looking for free shipping lines OPW-2243736 closes odoo/odoo#51756 X-original-commit: 7b37c9d8ac1ccb1b6684308cf4dedf3a4b6bed11 Signed-off-by: Jason Van Malder (jvm) --- addons/website_sale_coupon_delivery/controllers/main.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/website_sale_coupon_delivery/controllers/main.py b/addons/website_sale_coupon_delivery/controllers/main.py index 113deb12126..a4753827f0d 100644 --- a/addons/website_sale_coupon_delivery/controllers/main.py +++ b/addons/website_sale_coupon_delivery/controllers/main.py @@ -11,8 +11,12 @@ class WebsiteSaleCouponDelivery(WebsiteSaleDelivery): Monetary = request.env['ir.qweb.field.monetary'] result = super(WebsiteSaleCouponDelivery, self).update_eshop_carrier(**post) order = request.website.sale_get_order() - order.recompute_coupon_lines() - free_shipping_lines = order._get_free_shipping_lines() + free_shipping_lines = None + + if order: + order.recompute_coupon_lines() + free_shipping_lines = order._get_free_shipping_lines() + if free_shipping_lines: currency = order.currency_id amount_free_shipping = sum(free_shipping_lines.mapped('price_subtotal'))