diff options
| author | jvm-odoo <jvm@odoo.com> | 2020-05-20 11:05:49 +0000 |
|---|---|---|
| committer | jvm-odoo <jvm@odoo.com> | 2020-05-25 07:31:05 +0000 |
| commit | 0e7102587ea28a74a4e0ebdcff181dcabbf45163 (patch) | |
| tree | 91b4a1c8210a342818a644ad81193aa4f37a919b /addons/website_sale_delivery | |
| parent | be54b82afdb246697d9c46e7d73bac09cc45a4c6 (diff) | |
[FIX] website_sale_delivery: traceback when going back
Issue
- Install eCommerce & Delivery Costs
- 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 address is incorrect
(public user address).
So since you have 2 delivery methods and
your address have only one, an assert
cause a traceback
Solution
This is the right behavior but I think
it's better to give a clear error message
instead of a traceback.
OPW-2243736
X-original-commit: 0222b727c143593debaf40a4ab54bda2f6b42213
Diffstat (limited to 'addons/website_sale_delivery')
| -rw-r--r-- | addons/website_sale_delivery/controllers/main.py | 6 | ||||
| -rw-r--r-- | addons/website_sale_delivery/i18n/website_sale_delivery.pot | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/addons/website_sale_delivery/controllers/main.py b/addons/website_sale_delivery/controllers/main.py index c623ebab63c..09b03d78f6e 100644 --- a/addons/website_sale_delivery/controllers/main.py +++ b/addons/website_sale_delivery/controllers/main.py @@ -4,6 +4,7 @@ from odoo import http, _ from odoo.http import request from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.exceptions import UserError class WebsiteSaleDelivery(WebsiteSale): @@ -32,7 +33,10 @@ class WebsiteSaleDelivery(WebsiteSale): @http.route(['/shop/carrier_rate_shipment'], type='json', auth='public', methods=['POST'], website=True) def cart_carrier_rate_shipment(self, carrier_id, **kw): order = request.website.sale_get_order(force_create=True) - assert int(carrier_id) in order._get_delivery_methods().ids, "unallowed carrier" + + if not int(carrier_id) in order._get_delivery_methods().ids: + raise UserError(_('It seems that a delivery method is not compatible with your address. Please refresh the page and try again.')) + Monetary = request.env['ir.qweb.field.monetary'] res = {'carrier_id': carrier_id} diff --git a/addons/website_sale_delivery/i18n/website_sale_delivery.pot b/addons/website_sale_delivery/i18n/website_sale_delivery.pot index 13593142ead..6c951ad4302 100644 --- a/addons/website_sale_delivery/i18n/website_sale_delivery.pot +++ b/addons/website_sale_delivery/i18n/website_sale_delivery.pot @@ -92,7 +92,15 @@ msgid "Free" msgstr "" #. module: website_sale_delivery -#: code:addons/website_sale_delivery/controllers/main.py:72 +#: code:addons/website_sale_delivery/controllers/main.py:0 +#, python-format +msgid "" +"It seems that a delivery method is not compatible with your address. Please " +"refresh the page and try again." +msgstr "" + +#. module: website_sale_delivery +#: code:addons/website_sale_delivery/controllers/main.py:0 #, python-format msgid "" "No shipping method is available for your current order and shipping address." |
