From 327932f63a2abe5b1691debdbafd2dc3ee45a290 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Mon, 1 Apr 2019 14:05:59 +0000 Subject: [PATCH] [FIX] website_sale_delivery: don't replace error message by 'Free' When a delivery carrier can't compute the delivery price, it returns an error that is shown instead of the price (eg 'bpost Domestic is used only to ship inside Belgium..'). But since 1ab53c27f everytime the user compute a carrier price and there is a coupon allowing free delivery, every listed delivery carrier would have their badges set to 'Free', including also carrier in error state. This commit will not replace the error message by 'Free'. Coming from #31857 (task-1867265) --- .../static/src/js/website_sale_delivery.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 a9797113186..29709d37825 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 @@ -51,8 +51,9 @@ publicWidget.registry.websiteSaleDelivery = publicWidget.Widget.extend({ // Update discount of the order $('#order_discounted').find('.oe_currency_value').text(result.new_amount_order_discounted); - // We are in freeshipping, so every carrier is Free - $('#delivery_carrier .badge').text(_t('Free')); + // We are in freeshipping, so every carrier is Free but we don't + // want to replace error message by 'Free' + $('#delivery_carrier .badge:not(.o_wsale_delivery_carrier_error)').text(_t('Free')); } if (result.status === true) { @@ -63,10 +64,12 @@ publicWidget.registry.websiteSaleDelivery = publicWidget.Widget.extend({ $carrierBadge.children('span').text(result.new_amount_delivery); $carrierBadge.removeClass('d-none'); $computeBadge.addClass('d-none'); + $computeBadge.removeClass('o_wsale_delivery_carrier_error'); $payButton.data('disabled_reasons').carrier_selection = false; $payButton.prop('disabled', _.contains($payButton.data('disabled_reasons'), true)); } else { console.error(result.error_message); + $computeBadge.addClass('o_wsale_delivery_carrier_error'); $computeBadge.text(result.error_message); $amountDelivery.text(result.new_amount_delivery); $amountUntaxed.text(result.new_amount_untaxed);