From 16cbb825a8f7461d6ad098429ddb38fbddc2af66 Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Mon, 18 Sep 2023 15:22:03 +0200 Subject: [PATCH] [REM] website_sale: stop polling pending transactions from the shop This commit removes a legacy polling system that was present to query the server about status change of pending transactions in the shop. This has not been necessary since that all payment flows go through the /payment/status page, which already polls the server for pending transactions' state change. task-3125913 closes odoo/odoo#119473 Related: odoo/enterprise#47603 Signed-off-by: Antoine Vandevenne (anv) --- addons/website_sale/__manifest__.py | 1 - addons/website_sale/controllers/main.py | 15 ------ .../static/src/js/website_sale_validate.js | 48 ------------------- 3 files changed, 64 deletions(-) delete mode 100644 addons/website_sale/static/src/js/website_sale_validate.js diff --git a/addons/website_sale/__manifest__.py b/addons/website_sale/__manifest__.py index 61887fb67e1..c9355183c23 100644 --- a/addons/website_sale/__manifest__.py +++ b/addons/website_sale/__manifest__.py @@ -70,7 +70,6 @@ 'website_sale/static/src/js/website_sale_utils.js', 'website_sale/static/src/xml/website_sale_utils.xml', 'website_sale/static/src/js/website_sale_payment.js', - 'website_sale/static/src/js/website_sale_validate.js', 'website_sale/static/src/js/website_sale_recently_viewed.js', 'website_sale/static/src/js/website_sale_tracking.js', 'website/static/lib/multirange/multirange_custom.js', diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 91765d11b8f..96060dc5647 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -1642,21 +1642,6 @@ class WebsiteSale(http.Controller): return request.render("website_sale.payment", render_values) - @http.route('/shop/payment/get_status/', type='json', auth="public", website=True) - def shop_payment_get_status(self, sale_order_id, **post): - order = request.env['sale.order'].sudo().browse(sale_order_id).exists() - if order.id != request.session.get('sale_last_order_id'): - # either something went wrong or the session is unbound - # prevent recalling every 3rd of a second in the JS widget - return {} - - return { - 'recall': order.get_portal_last_transaction().state == 'pending', - 'message': request.env['ir.ui.view']._render_template("website_sale.payment_confirmation_status", { - 'order': order - }) - } - @http.route('/shop/payment/validate', type='http', auth="public", website=True, sitemap=False) def shop_payment_validate(self, sale_order_id=None, **post): """ Method that should be called by the server when receiving an update diff --git a/addons/website_sale/static/src/js/website_sale_validate.js b/addons/website_sale/static/src/js/website_sale_validate.js deleted file mode 100644 index 95974c78c98..00000000000 --- a/addons/website_sale/static/src/js/website_sale_validate.js +++ /dev/null @@ -1,48 +0,0 @@ -/** @odoo-module **/ - -import publicWidget from "@web/legacy/js/public/public_widget"; -import { _t } from "@web/core/l10n/translation"; - -publicWidget.registry.websiteSaleValidate = publicWidget.Widget.extend({ - selector: 'div.oe_website_sale_tx_status[data-order-id]', - - /** - * @override - */ - start: function () { - var def = this._super.apply(this, arguments); - this._poll_nbr = 0; - this._paymentTransationPollStatus(); - return def; - }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - /** - * @private - */ - _paymentTransationPollStatus: function () { - var self = this; - this._rpc({ - route: '/shop/payment/get_status/' + parseInt(this.$el.data('order-id')), - }).then(function (result) { - self._poll_nbr += 1; - if (result.recall) { - if (self._poll_nbr < 20) { - setTimeout(function () { - self._paymentTransationPollStatus(); - }, Math.ceil(self._poll_nbr / 3) * 1000); - } else { - var $message = $(result.message); - var $warning = $(""); - $warning.attr("title", _t("We are waiting for confirmation from the bank or the payment provider")); - $message.find('span:first').prepend($warning); - result.message = $message.html(); - } - } - self.$el.html(result.message); - }); - }, -});