From 11bc680ae9d864d5e0e28ff85bad96a2c4cdc326 Mon Sep 17 00:00:00 2001 From: tbe-odoo Date: Wed, 23 Aug 2017 16:29:26 +0200 Subject: [PATCH] [IMP] payment: Remove ugly render() hack - Removed an ugly hack that renders s2s forms then display them using t-raw, we're now providing the xml_id of the s2s forms and uses t-call instead. --- addons/payment/controllers/portal.py | 8 ++++---- addons/payment/models/payment_acquirer.py | 15 +++++---------- addons/payment/views/payment_templates.xml | 2 +- addons/website_quote/controllers/main.py | 8 ++------ addons/website_sale/controllers/main.py | 8 ++------ 5 files changed, 14 insertions(+), 27 deletions(-) diff --git a/addons/payment/controllers/portal.py b/addons/payment/controllers/portal.py index 9d06665d021..640179f71c3 100644 --- a/addons/payment/controllers/portal.py +++ b/addons/payment/controllers/portal.py @@ -12,13 +12,13 @@ class WebsitePayment(http.Controller): partner = request.env.user.partner_id payment_tokens = partner.payment_token_ids payment_tokens |= partner.commercial_partner_id.sudo().payment_token_ids + return_url = request.params.get('redirect', '/my/payment_method') values = { 'pms': payment_tokens, - 'acquirers': acquirers + 'acquirers': acquirers, + 'return_url': return_url, + 'bootstrap_formatting': True } - return_url = request.params.get('redirect', '/my/payment_method') - for acquirer in acquirers: - acquirer.form = acquirer.sudo()._registration_render(request.env.user.partner_id.id, {'error': {}, 'error_message': [], 'return_url': return_url, 'json': False, 'bootstrap_formatting': True}) return request.render("payment.pay_methods", values) @http.route(['/website_payment/pay'], type='http', auth='public', website=True) diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index 365e8d14b37..c36c55ffbac 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -355,16 +355,11 @@ class PaymentAcquirer(models.Model): return self.view_template_id.render(values, engine='ir.qweb') - @api.multi - def _registration_render(self, partner_id, qweb_context=None): - if qweb_context is None: - qweb_context = {} - qweb_context.update(id=self.ids[0], partner_id=partner_id) - method_name = '_%s_registration_form_generate_values' % (self.provider,) - if hasattr(self, method_name): - method = getattr(self, method_name) - qweb_context.update(method(qweb_context)) - return self.registration_view_template_id.render(qweb_context, engine='ir.qweb') + def get_s2s_form_name(self): + if self.registration_view_template_id: + model_data = self.env['ir.model.data'].search([('model', '=', 'ir.ui.view'), ('res_id', '=', self.registration_view_template_id.id)]) + return ('%s.%s') % (model_data.module, model_data.name) + return False @api.multi def s2s_process(self, data): diff --git a/addons/payment/views/payment_templates.xml b/addons/payment/views/payment_templates.xml index fd693681ae0..e8360962043 100644 --- a/addons/payment/views/payment_templates.xml +++ b/addons/payment/views/payment_templates.xml @@ -61,7 +61,7 @@
- +
diff --git a/addons/website_quote/controllers/main.py b/addons/website_quote/controllers/main.py index 8098964c71e..8bbfca7fd08 100644 --- a/addons/website_quote/controllers/main.py +++ b/addons/website_quote/controllers/main.py @@ -61,6 +61,8 @@ class sale_quote(http.Controller): 'tx_post_msg': Transaction.acquirer_id.post_msg if Transaction else False, 'need_payment': order_sudo.invoice_status == 'to invoice' and Transaction.state in ['draft', 'cancel', 'error'], 'token': token, + 'return_url': '/shop/payment/validate', + 'bootstrap_formatting': True } if order_sudo.require_payment or values['need_payment']: @@ -81,12 +83,6 @@ class sale_quote(http.Controller): 'partner_id': order_sudo.partner_id.id, }) - for acq in values['s2s_acquirers']: - acq.form = acq._registration_render(order_sudo.partner_id.id, { - 'return_url': '/shop/payment/validate', - 'bootstrap_formatting': True - }) - history = request.session.get('my_quotes_history', []) values.update(get_records_pager(history, order_sudo)) return request.render('website_quote.so_quotation', values) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 9bd4ce76b1d..67ff0e2a45a 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -708,6 +708,8 @@ class WebsiteSale(http.Controller): partner=order.partner_id.id, order=order, payment_action_id=request.env.ref('payment.action_payment_acquirer').id, + return_url= '/shop/payment/validate', + bootstrap_formatting= True ) acquirers = request.env['payment.acquirer'].search( @@ -732,12 +734,6 @@ class WebsiteSale(http.Controller): } ) - for acq in values['s2s_acquirers']: - acq.form = acq._registration_render(order.partner_id.id, { - 'return_url': '/shop/payment/validate', - 'bootstrap_formatting': True - }) - return values @http.route(['/shop/payment'], type='http', auth="public", website=True)