From 57a89dd6011442fc261cce4891a7d14b2e9ffabd Mon Sep 17 00:00:00 2001 From: Mohit Beniwal Date: Fri, 9 Jun 2023 08:47:42 +0000 Subject: [PATCH] [FIX] website_sale: require a cart before submitting extra info When user tries to enter extra info from Configure Form from 'settings' so 'website.sale_get_order' method does not get any order. Steps to reproduce: 1) Install website_sale module. 2) Click on settings > activate 'Extra Step During Checkout' > click on 'Save' button. 3) Now in 'settings', click on 'Configure Form' under 'Extra Step During Checkout'. 4) Now, click on 'Discard' button on top right of screen. 5) Enter something in textbox 'Give us your feedback' > click on 'Next' button and traceback will be generated in backend. Error: ValueError: Expected singleton: sale.order() traceback will be generated because in method '_message_log' it is expecting a record. Sentry-4126876202 closes odoo/odoo#125259 X-original-commit: 43506c5934e50bc1b132a135466b405f1d1ebb20 Signed-off-by: Mohit Beniwal (mobe) --- addons/website_sale/controllers/main.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 40e09d6886b..090c1a41f39 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -110,6 +110,9 @@ class WebsiteSaleForm(WebsiteForm): return json.dumps({'error_fields': e.args[0]}) order = request.website.sale_get_order() + if not order: + return json.dumps({'error': "No order found; please add a product to your cart."}) + if data['record']: order.write(data['record'])