diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2019-01-24 09:30:59 +0000 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2019-01-25 10:19:12 +0000 |
| commit | b2266fae87f9edb64e1a1552166ccec35bd8e24d (patch) | |
| tree | 4085b7def7dad693a1bd560c14713634004edd26 | |
| parent | fe36bff420c763a4aeebb9f73ab7c1f342b6b2b2 (diff) | |
[FIX] website_sale: terms & conditions
- Install website_sale and website_sale_delivery
- Activate 'Terms & Condition' on the payment page
- Process a shopping cart
On the payment page, the 'Terms & Condition' checkbox is unchecked, but
the 'Payment' button is enabled.
Both `$checkbox.change` and `_onCarrierUpdateAnswer` set the `disabled`
property, and conflict.
We keep on the HTML node an object with the list of disabled reasons.
opw-1923459
Co-authored-by: Nicolas Lempereur <nle@odoo.com>
closes odoo/odoo#30504
| -rw-r--r-- | addons/website_sale/static/src/js/website_sale_payment.js | 5 | ||||
| -rw-r--r-- | addons/website_sale_delivery/static/src/js/website_sale_delivery.js | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/addons/website_sale/static/src/js/website_sale_payment.js b/addons/website_sale/static/src/js/website_sale_payment.js index 45373cea37a..cc104fecc39 100644 --- a/addons/website_sale/static/src/js/website_sale_payment.js +++ b/addons/website_sale/static/src/js/website_sale_payment.js @@ -7,9 +7,12 @@ var $checkbox = $("#checkbox_cgv"); if (!$checkbox.length) { return; } +var $pay_button = $('button#o_payment_form_pay'); $checkbox.on('change', function (ev) { - $('button#o_payment_form_pay').prop('disabled', !ev.target.checked); + $pay_button.data('disabled_reasons', $pay_button.data('disabled_reasons') || {}); + $pay_button.data('disabled_reasons').cgv = !ev.target.checked; + $pay_button.prop('disabled', _.contains($pay_button.data('disabled_reasons'), true)); }); $checkbox.change(); }); 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 476c1bd4faa..39581ee54c8 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 @@ -35,7 +35,8 @@ odoo.define('website_sale_delivery.checkout', function (require) { $carrier_badge.children('span').text(result.new_amount_delivery); $carrier_badge.removeClass('d-none'); $compute_badge.addClass('d-none'); - $pay_button.prop('disabled', false); + $pay_button.data('disabled_reasons').carrier_selection = false; + $pay_button.prop('disabled', _.contains($pay_button.data('disabled_reasons'), true)); } else { console.error(result.error_message); @@ -48,6 +49,8 @@ odoo.define('website_sale_delivery.checkout', function (require) { }; var _onCarrierClick = function(ev) { + $pay_button.data('disabled_reasons', $pay_button.data('disabled_reasons') || {}); + $pay_button.data('disabled_reasons').carrier_selection = true; $pay_button.prop('disabled', true); var carrier_id = $(ev.currentTarget).val(); var values = {'carrier_id': carrier_id}; |
