diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 18f3bd4957f..806b215ed02 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -1257,7 +1257,7 @@
-
+

diff --git a/addons/website_sale_delivery/controllers/main.py b/addons/website_sale_delivery/controllers/main.py index cbb456d7968..e9403cb26bb 100644 --- a/addons/website_sale_delivery/controllers/main.py +++ b/addons/website_sale_delivery/controllers/main.py @@ -44,8 +44,14 @@ class WebsiteSaleDelivery(WebsiteSale): has_stockable_products = any(line.product_id.type in ['consu', 'product'] for line in order.order_line) if has_stockable_products: + if order.carrier_id and not order.delivery_rating_success: + values['errors'].append( + (_("Ouch, you cannot choose this carrier!"), + _("%s does not ship to your address, please choose another one.") % order.carrier_id.name)) + order._remove_delivery_line() + delivery_carriers = order._get_delivery_methods() - values['deliveries'] = delivery_carriers.sudo().with_context(order_id=order.id) + values['deliveries'] = delivery_carriers.sudo() values['delivery_action_id'] = request.env.ref('delivery.action_delivery_carrier_form').id return values diff --git a/addons/website_sale_delivery/models/sale_order.py b/addons/website_sale_delivery/models/sale_order.py index 996ae6eaf89..036d2a13a4f 100644 --- a/addons/website_sale_delivery/models/sale_order.py +++ b/addons/website_sale_delivery/models/sale_order.py @@ -2,8 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import logging -from odoo import api, fields, models, _ -from odoo.exceptions import ValidationError +from odoo import api, fields, models _logger = logging.getLogger(__name__) @@ -61,7 +60,8 @@ class SaleOrder(models.Model): self.write({'carrier_id': carrier.id}) if carrier: self.get_delivery_price() - self.set_delivery_line() + if self.delivery_rating_success: + self.set_delivery_line() else: self._remove_delivery_line() @@ -85,8 +85,4 @@ class SaleOrder(models.Model): values = super(SaleOrder, self)._cart_update(product_id, line_id, add_qty, set_qty, **kwargs) - if add_qty or set_qty is not None: - for sale_order in self: - self._check_carrier_quotation() - return values diff --git a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js index 46caab18e0e..ff48ebd9dfd 100644 --- a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js +++ b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js @@ -1,3 +1,4 @@ +'use strict'; $(document).ready(function () { // When choosing an delivery carrier, update the quotation and the acquirers @@ -11,7 +12,7 @@ $(document).ready(function () { var value = $(this).val(); var $provider_free = $("select[name='country_id']:not(.o_provider_restricted), select[name='state_id']:not(.o_provider_restricted)"); var $provider_restricted = $("select[name='country_id'].o_provider_restricted, select[name='state_id'].o_provider_restricted"); - if (value == 0) { + if (value === 0) { // Ship to the same address : only show shipping countries available for billing $provider_free.hide().attr('disabled', true); $provider_restricted.show().attr('disabled', false).change(); diff --git a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml index e7989274a34..6b4d5ef79be 100644 --- a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml +++ b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml @@ -25,20 +25,14 @@
-

Choose a delivery method

+

Choose a delivery method