[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) <mobe@odoo.com>
This commit is contained in:
Mohit Beniwal
2023-06-16 06:42:56 +02:00
parent 651476db87
commit 57a89dd601
+3
View File
@@ -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'])