summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2019-07-17 13:56:26 +0000
committerVictor Feyens <vfe@odoo.com>2019-08-12 08:44:25 +0000
commit611fde6c8828d7d89b8c7f90b60484c58debcf73 (patch)
treec5fa9c0e798f279d74bf2a97d434bd848b73c118
parent718ca5269bbc0e7687ff1290d4b0c679504d6d4f (diff)
[IMP] payment: UI/flow
-rw-r--r--addons/payment/models/payment_acquirer.py32
-rw-r--r--addons/payment/static/src/js/payment_processing.js2
-rw-r--r--addons/payment/static/src/scss/payment_acquirer.scss1
-rw-r--r--addons/payment/views/payment_templates.xml1
-rw-r--r--addons/payment/views/payment_views.xml76
-rw-r--r--addons/payment_adyen/views/payment_views.xml2
-rw-r--r--addons/payment_alipay/views/alipay_views.xml2
-rw-r--r--addons/payment_authorize/views/payment_views.xml2
-rw-r--r--addons/payment_buckaroo/views/payment_views.xml2
-rw-r--r--addons/payment_ingenico/views/payment_views.xml2
-rw-r--r--addons/payment_paypal/views/payment_views.xml2
-rw-r--r--addons/payment_payulatam/views/payment_views.xml2
-rw-r--r--addons/payment_payumoney/views/payment_views.xml2
-rw-r--r--addons/payment_sips/views/payment_views.xml2
-rw-r--r--addons/payment_stripe/views/payment_views.xml2
-rw-r--r--addons/payment_transfer/controllers/main.py2
-rw-r--r--addons/payment_transfer/data/payment_acquirer_data.xml2
-rw-r--r--addons/payment_transfer/models/payment.py2
-rw-r--r--addons/sale/controllers/portal.py2
-rw-r--r--addons/sale/models/res_company.py2
-rw-r--r--addons/sale/views/payment_views.xml2
-rw-r--r--addons/website_sale/controllers/main.py2
-rw-r--r--addons/website_sale/views/templates.xml17
23 files changed, 77 insertions, 86 deletions
diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py
index 6221ceab7a0..b7153bf5f0e 100644
--- a/addons/payment/models/payment_acquirer.py
+++ b/addons/payment/models/payment_acquirer.py
@@ -75,7 +75,19 @@ class PaymentAcquirer(models.Model):
default=lambda self: self.env.company.id, required=True)
view_template_id = fields.Many2one(
'ir.ui.view', 'Form Button Template',
- default=_get_default_view_template_id)
+ default=_get_default_view_template_id,
+ help="This template renders the acquirer button with all necessary values.\n"
+ "It is rendered with qWeb with the following evaluation context:\n"
+ "tx_url: transaction URL to post the form\n"
+ "acquirer: payment.acquirer browse record\n"
+ "user: current user browse record\n"
+ "reference: the transaction reference number\n"
+ "currency: the transaction currency browse record\n"
+ "amount: the transaction amount, a float\n"
+ "partner: the buyer partner browse record, not necessarily set\n"
+ "partner_values: specific values about the buyer, for example coming from a shipping form\n"
+ "tx_values: transaction values\n"
+ "context: the current context dictionary")
registration_view_template_id = fields.Many2one(
'ir.ui.view', 'S2S Form Template', domain=[('type', '=', 'qweb')],
help="Template for method registration")
@@ -91,15 +103,7 @@ class PaymentAcquirer(models.Model):
help="Capture the amount from Odoo, when the delivery is completed.")
journal_id = fields.Many2one(
'account.journal', 'Payment Journal', domain=[('type', 'in', ['bank', 'cash'])],
- help="""Payments will be registered into this journal. If you get paid straight on your bank account,
- select your bank account. If you get paid in batch for several transactions, create a specific
- payment journal for this payment acquirer to easily manage the bank reconciliation. You hold
- the amount in a temporary transfer account of your books (created automatically when you create
- the payment journal). Then when you get paid on your bank account by the payment acquirer, you
- reconcile the bank statement line with this temporary transfer account. Use reconciliation
- templates to do it in one-click.""")
- specific_countries = fields.Boolean(string="Specific Countries",
- help="If you leave it empty, the payment acquirer will be available for all the countries.")
+ help="""Journal where the successful transactions will be posted""")
check_validity = fields.Boolean(string="Verify Card Validity",
help="""Trigger a transaction of 1 currency unit and its refund to check the validity of new credit cards entered in the customer portal.
Without this check, the validity will be verified at the very first transaction.""")
@@ -116,15 +120,15 @@ class PaymentAcquirer(models.Model):
help='Message displayed after having done the payment process.')
pending_msg = fields.Html(
'Pending Message', translate=True,
- default=lambda s: _('<i>Pending,</i> Your online payment has been successfully processed. But your order is not validated yet.'),
+ default=lambda s: _('Your payment has been successfully processed but is waiting for approval.'),
help='Message displayed, if order is in pending state after having done the payment process.')
done_msg = fields.Html(
'Done Message', translate=True,
- default=lambda s: _('<i>Done,</i> Your online payment has been successfully processed. Thank you for your order.'),
+ default=lambda s: _('Your payment has been successfully processed. Thank you!'),
help='Message displayed, if order is done successfully after having done the payment process.')
cancel_msg = fields.Html(
'Cancel Message', translate=True,
- default=lambda s: _('<i>Cancel,</i> Your payment has been cancelled.'),
+ default=lambda s: _('Your payment has been cancelled.'),
help='Message displayed, if order is cancel during the payment process.')
error_msg = fields.Html(
'Error Message', translate=True,
@@ -693,7 +697,7 @@ class PaymentTransaction(models.Model):
inv.message_post(body=post_message)
def _set_transaction_pending(self):
- '''Move the transaction to the pending state(e.g. Wire Transfer).'''
+ '''Move the transaction to the pending state(e.g. Manual Payment).'''
if any(trans.state != 'draft' for trans in self):
raise ValidationError(_('Only draft transaction can be processed.'))
diff --git a/addons/payment/static/src/js/payment_processing.js b/addons/payment/static/src/js/payment_processing.js
index ec1028188ec..361cc3dbf4c 100644
--- a/addons/payment/static/src/js/payment_processing.js
+++ b/addons/payment/static/src/js/payment_processing.js
@@ -110,7 +110,7 @@ odoo.define('payment.processing', function (require) {
this.$el.find('.o_payment_processing_content').html(html);
},
displayLoading: function () {
- var msg = _t("We are processing your payments, please wait ...");
+ var msg = _t("We are processing your payment, please wait ...");
$.blockUI({
'message': '<h2 class="text-white"><img src="/web/static/src/img/spin.png" class="fa-pulse"/>' +
' <br />' + msg +
diff --git a/addons/payment/static/src/scss/payment_acquirer.scss b/addons/payment/static/src/scss/payment_acquirer.scss
index 5f71663533e..e73582ec847 100644
--- a/addons/payment/static/src/scss/payment_acquirer.scss
+++ b/addons/payment/static/src/scss/payment_acquirer.scss
@@ -42,6 +42,7 @@
.o_form_view {
.o_payment_acquirer_desc {
+ margin-top: 10px;
ul {
list-style-type: none;
padding: 0;
diff --git a/addons/payment/views/payment_templates.xml b/addons/payment/views/payment_templates.xml
index 8d2c1916d0d..029672dc046 100644
--- a/addons/payment/views/payment_templates.xml
+++ b/addons/payment/views/payment_templates.xml
@@ -86,6 +86,7 @@
<t t-set="i" t-value="i+1"/>
</t>
</ul>
+ <div><t t-raw="acq.pre_msg"/></div>
</div>
<t t-if="acq.payment_flow == 'form'">
<div t-attf-id="o_payment_form_acq_{{acq.id}}"
diff --git a/addons/payment/views/payment_views.xml b/addons/payment/views/payment_views.xml
index 774222c4c6d..0d6e2ea8f1c 100644
--- a/addons/payment/views/payment_views.xml
+++ b/addons/payment/views/payment_views.xml
@@ -73,15 +73,44 @@
</div>
<group name="acquirer_base" col="2" attrs="{'invisible': ['&amp;', ('module_id', '!=', False), ('module_state', '!=', 'installed')]}">
<group name="acquirer_left">
- <field name="provider" groups="base.group_no_one"/>
+ <field name="provider" groups="base.group_no_one" attrs="{'invisible': [('module_id', '!=', False), ('module_state', '!=', 'installed')]}"/>
<field name="company_id" groups="base.group_multi_company" options='{"no_open":True}'/>
</group>
</group>
<notebook attrs="{'invisible': ['&amp;', ('module_id', '!=', False), ('module_state', '!=', 'installed')]}">
- <page string="Credentials" name="acquirer_credentials">
+ <page string="Credentials" name="acquirer_credentials" attrs="{'invisible': ['provider', '=', 'manual']}">
<group name="acquirer">
</group>
</page>
+ <page string="Configuration">
+ <group name="acquirer_config">
+ <group string="Payment Form" name="payment_form">
+ <field name="payment_icon_ids" widget="many2many_tags"/>
+ <field name="save_token" widget="radio" attrs="{'invisible': ['|', ('token_implemented', '=', False), ('payment_flow', '=', 's2s')]}"/>
+ <field name="capture_manually" attrs="{'invisible': [('authorize_implemented', '=', False)]}"/>
+ <field name="payment_flow" widget="radio" attrs="{'invisible': [('token_implemented', '=', False)]}"/>
+ <field name="view_template_id" groups="base.group_no_one"/>
+ <field name="registration_view_template_id" groups="base.group_no_one" attrs="{'invisible': [('payment_flow', '!=', 's2s')]}"/>
+ <field name="check_validity" attrs="{'invisible': [('payment_flow', '!=', 's2s')]}" groups="base.group_no_one"/>
+ <field name="qr_code" attrs="{'invisible': [('provider', '!=', 'transfer')]}"/>
+ </group>
+ <group string="Availability" name="availability">
+ <field name="country_ids" widget="many2many_tags" placeholder="Select countries. Leave empty to use everywhere."/>
+ </group>
+ <group string="Payment Followup" name="payment_followup">
+ <field name="journal_id" context="{'default_type': 'bank'}"/>
+ </group>
+ </group>
+ </page>
+ <page string="Fees" attrs="{'invisible': [('fees_implemented', '=', False)]}">
+ <group name="payment_fees">
+ <field name="fees_active"/>
+ <field name="fees_dom_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
+ <field name="fees_dom_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
+ <field name="fees_int_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
+ <field name="fees_int_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
+ </group>
+ </page>
<page string="Messages">
<group>
<field name="pre_msg" invisible="1"/>
@@ -92,45 +121,6 @@
<field name="error_msg"/>
</group>
</page>
- <page string="Configuration">
- <group name="acquirer_config">
- <field name="journal_id" context="{'default_type': 'bank'}"/>
- <field name="capture_manually" attrs="{'invisible': [('authorize_implemented', '=', False)]}"/>
- <field name="save_token" widget="radio" attrs="{'invisible': ['|', ('token_implemented', '=', False), ('payment_flow', '=', 's2s')]}"/>
- <field name="fees_active" attrs="{'invisible': [('fees_implemented', '=', False)]}"/>
- <field name="fees_dom_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
- <field name="fees_dom_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
- <field name="fees_int_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
- <field name="fees_int_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
- <field name="specific_countries"/>
- <field name="qr_code" attrs="{'invisible': [('provider', '!=', 'transfer')]}"/>
- <field name="country_ids" widget="many2many_tags" attrs="{'invisible': [('specific_countries', '=', False)]}"/>
- <label for="view_template_id" groups="base.group_no_one"/>
- <div groups="base.group_no_one">
- <field name="view_template_id" nolabel="1"/>
- <div>
- This template renders the acquirer button with all necessary values.
- It is rendered with qWeb with the following evaluation context:
- <ul>
- <li>tx_url: transaction URL to post the form</li>
- <li>acquirer: payment.acquirer browse record</li>
- <li>user: current user browse record</li>
- <li>reference: the transaction reference number</li>
- <li>currency: the transaction currency browse record</li>
- <li>amount: the transaction amount, a float</li>
- <li>partner: the buyer partner browse record, not necessarily set</li>
- <li>partner_values: specific values about the buyer, for example coming from a shipping form</li>
- <li>tx_values: transaction values</li>
- <li>context: the current context dictionary</li>
- </ul>
- </div>
- </div>
- <field name="registration_view_template_id" groups="base.group_no_one" attrs="{'invisible': [('payment_flow', '!=', 's2s')]}"/>
- <field name="payment_icon_ids" widget="many2many_tags"/>
- <field name="payment_flow" widget="radio" attrs="{'invisible': [('token_implemented', '=', False)]}"/>
- <field name="check_validity" attrs="{'invisible': [('payment_flow', '!=', 's2s')]}" groups="base.group_no_one"/>
- </group>
- </page>
</notebook>
</sheet>
</form>
@@ -188,6 +178,7 @@
<field name="provider"/>
<field name="website_published"/>
<field name="environment"/>
+ <field name="country_ids" widget="many2many_tags" optional="hide"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
@@ -198,8 +189,9 @@
<field name="model">payment.acquirer</field>
<field name="arch" type="xml">
<search>
- <field name="name"/>
+ <field name="name" string="Acquirer" filter_domain="['|', ('name','ilike',self), ('description','ilike',self)]"/>
<field name="provider"/>
+ <filter name="acquirer_installed" string="Installed" domain="[('provider', '!=', 'manual')]"/>
<group expand="0" string="Group By">
<filter string="Provider" name="provider" domain="[]" context="{'group_by': 'provider'}"/>
<filter string="Environment" name="environment" domain="[]" context="{'group_by': 'environment'}"/>
diff --git a/addons/payment_adyen/views/payment_views.xml b/addons/payment_adyen/views/payment_views.xml
index 6914a28ff35..8d4beeb69b1 100644
--- a/addons/payment_adyen/views/payment_views.xml
+++ b/addons/payment_adyen/views/payment_views.xml
@@ -7,7 +7,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'adyen')]}">
<field name="adyen_merchant_account"/>
<field name="adyen_skin_code"/>
diff --git a/addons/payment_alipay/views/alipay_views.xml b/addons/payment_alipay/views/alipay_views.xml
index 3289f4c775c..d7e222d37ae 100644
--- a/addons/payment_alipay/views/alipay_views.xml
+++ b/addons/payment_alipay/views/alipay_views.xml
@@ -5,7 +5,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'alipay')]}">
<field name="alipay_payment_method" widget="radio"/>
<field name="alipay_seller_email" attrs="{'invisible': [('alipay_payment_method', '=', 'standard_checkout')], 'required': [('provider', '=', 'alipay'), ('alipay_payment_method', '=', 'express_checkout')]}"/>
diff --git a/addons/payment_authorize/views/payment_views.xml b/addons/payment_authorize/views/payment_views.xml
index 361d1a2903c..d2450222d3b 100644
--- a/addons/payment_authorize/views/payment_views.xml
+++ b/addons/payment_authorize/views/payment_views.xml
@@ -5,7 +5,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'authorize')]}">
<field name="authorize_login"/>
<field name="authorize_transaction_key" password="True"/>
diff --git a/addons/payment_buckaroo/views/payment_views.xml b/addons/payment_buckaroo/views/payment_views.xml
index 11ef4873cff..1de4dd264fa 100644
--- a/addons/payment_buckaroo/views/payment_views.xml
+++ b/addons/payment_buckaroo/views/payment_views.xml
@@ -7,7 +7,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'buckaroo')]}">
<field name="brq_websitekey"/>
<field name="brq_secretkey"/>
diff --git a/addons/payment_ingenico/views/payment_views.xml b/addons/payment_ingenico/views/payment_views.xml
index 10d17f26783..dbd4f27d6d8 100644
--- a/addons/payment_ingenico/views/payment_views.xml
+++ b/addons/payment_ingenico/views/payment_views.xml
@@ -7,7 +7,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'ogone')]}">
<field name="ogone_pspid"/>
<field name="ogone_userid"/>
diff --git a/addons/payment_paypal/views/payment_views.xml b/addons/payment_paypal/views/payment_views.xml
index 17d354587d7..47aed65bae8 100644
--- a/addons/payment_paypal/views/payment_views.xml
+++ b/addons/payment_paypal/views/payment_views.xml
@@ -7,7 +7,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'paypal')]}">
<field name="paypal_email_account"/>
<field name="paypal_seller_account"/>
diff --git a/addons/payment_payulatam/views/payment_views.xml b/addons/payment_payulatam/views/payment_views.xml
index 07a91da98c9..84a73c0d6c5 100644
--- a/addons/payment_payulatam/views/payment_views.xml
+++ b/addons/payment_payulatam/views/payment_views.xml
@@ -5,7 +5,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'payulatam')]}">
<field name="payulatam_account_id" options="{'no_create': True}"/>
<field name="payulatam_merchant_id"/>
diff --git a/addons/payment_payumoney/views/payment_views.xml b/addons/payment_payumoney/views/payment_views.xml
index 406aab52dbc..5156f0cb696 100644
--- a/addons/payment_payumoney/views/payment_views.xml
+++ b/addons/payment_payumoney/views/payment_views.xml
@@ -5,7 +5,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'payumoney')]}">
<field name="payumoney_merchant_key"/>
<field name="payumoney_merchant_salt" password="True"/>
diff --git a/addons/payment_sips/views/payment_views.xml b/addons/payment_sips/views/payment_views.xml
index aa3b20bd92e..00d9e51d445 100644
--- a/addons/payment_sips/views/payment_views.xml
+++ b/addons/payment_sips/views/payment_views.xml
@@ -7,7 +7,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'sips')]}">
<field name="sips_merchant_id"/>
<field name="sips_secret"/>
diff --git a/addons/payment_stripe/views/payment_views.xml b/addons/payment_stripe/views/payment_views.xml
index 46bd9214524..ac649d11a8e 100644
--- a/addons/payment_stripe/views/payment_views.xml
+++ b/addons/payment_stripe/views/payment_views.xml
@@ -5,7 +5,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr='//group[@name="acquirer"]' position='after'>
+ <xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'stripe')]}">
<field name="stripe_secret_key" password="True"/>
<field name="stripe_publishable_key" password="True"/>
diff --git a/addons/payment_transfer/controllers/main.py b/addons/payment_transfer/controllers/main.py
index 35a34831b00..038299ccd44 100644
--- a/addons/payment_transfer/controllers/main.py
+++ b/addons/payment_transfer/controllers/main.py
@@ -9,7 +9,7 @@ from odoo.http import request
_logger = logging.getLogger(__name__)
-class OgoneController(http.Controller):
+class TransferController(http.Controller):
_accept_url = '/payment/transfer/feedback'
@http.route([
diff --git a/addons/payment_transfer/data/payment_acquirer_data.xml b/addons/payment_transfer/data/payment_acquirer_data.xml
index 91abdc444ee..5f060de7057 100644
--- a/addons/payment_transfer/data/payment_acquirer_data.xml
+++ b/addons/payment_transfer/data/payment_acquirer_data.xml
@@ -11,7 +11,7 @@
<field name="environment">test</field>
<field name="website_published" eval="True"/>
<field name="pre_msg"><![CDATA[
-<p>Transfer information will be provided after choosing the payment aquirer.</p>]]>
+<p>Transfer information will be provided when clicking 'Pay Now'.</p>]]>
</field>
</record>
</data>
diff --git a/addons/payment_transfer/models/payment.py b/addons/payment_transfer/models/payment.py
index 5c483597bb3..c363f551253 100644
--- a/addons/payment_transfer/models/payment.py
+++ b/addons/payment_transfer/models/payment.py
@@ -13,7 +13,7 @@ _logger = logging.getLogger(__name__)
class TransferPaymentAcquirer(models.Model):
_inherit = 'payment.acquirer'
- provider = fields.Selection(selection_add=[('transfer', 'Wire Transfer')], default='transfer')
+ provider = fields.Selection(selection_add=[('transfer', 'Manual Payment')], default='transfer')
@api.model
def _create_missing_journal_for_acquirers(self, company=None):
diff --git a/addons/sale/controllers/portal.py b/addons/sale/controllers/portal.py
index 259d218ed13..3adb5067f91 100644
--- a/addons/sale/controllers/portal.py
+++ b/addons/sale/controllers/portal.py
@@ -176,7 +176,7 @@ class CustomerPortal(CustomerPortal):
if order_sudo.has_to_be_paid():
domain = expression.AND([
['&', ('website_published', '=', True), ('company_id', '=', order_sudo.company_id.id)],
- ['|', ('specific_countries', '=', False), ('country_ids', 'in', [order_sudo.partner_id.country_id.id])]
+ ['|', ('country_ids', '=', False), ('country_ids', 'in', [order_sudo.partner_id.country_id.id])]
])
acquirers = request.env['payment.acquirer'].sudo().search(domain)
diff --git a/addons/sale/models/res_company.py b/addons/sale/models/res_company.py
index f2952cc5326..ceac8cdd768 100644
--- a/addons/sale/models/res_company.py
+++ b/addons/sale/models/res_company.py
@@ -21,7 +21,7 @@ class ResCompany(models.Model):
('paypal', 'PayPal'),
('stripe', 'Stripe'),
('other', 'Pay with another payment acquirer'),
- ('manual', 'Wire Transfer'),
+ ('manual', 'Manual Payment'),
], string="Sale onboarding selected payment method")
@api.model
diff --git a/addons/sale/views/payment_views.xml b/addons/sale/views/payment_views.xml
index b3ecabeaeec..bf26daf6d64 100644
--- a/addons/sale/views/payment_views.xml
+++ b/addons/sale/views/payment_views.xml
@@ -6,7 +6,7 @@
<field name="model">payment.acquirer</field>
<field name="inherit_id" ref="payment.acquirer_form"/>
<field name="arch" type="xml">
- <xpath expr="//group[@name='acquirer_config']" position="inside">
+ <xpath expr="//field[@name='qr_code']" position="after">
<field name="so_reference_type" attrs="{'invisible': [('provider', '!=', 'transfer')]}"/>
</xpath>
</field>
diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index ba6f5548504..f3f470a718f 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -841,7 +841,7 @@ class WebsiteSale(http.Controller):
domain = expression.AND([
['&', ('website_published', '=', True), ('company_id', '=', order.company_id.id)],
['|', ('website_id', '=', False), ('website_id', '=', request.website.id)],
- ['|', ('specific_countries', '=', False), ('country_ids', 'in', [order.partner_id.country_id.id])]
+ ['|', ('country_ids', '=', False), ('country_ids', 'in', [order.partner_id.country_id.id])]
])
acquirers = request.env['payment.acquirer'].search(domain)
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 083b07426df..e980b4bc0f2 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -1599,8 +1599,8 @@
<t t-set="payment_tx_id" t-value="order.get_portal_last_transaction()"/>
<div t-attf-class="card #{
(payment_tx_id.state == 'pending' and 'bg-info') or
- (payment_tx_id.state == 'done' and 'bg-success') or
- (payment_tx_id.state == 'authorized' and 'bg-success') or
+ (payment_tx_id.state == 'done' and 'alert-success') or
+ (payment_tx_id.state == 'authorized' and 'alert-success') or
'bg-danger'}">
<div class="card-header">
<a role="button" groups="base.group_system" class="btn btn-sm btn-link text-white float-right" target="_blank" aria-label="Edit" title="Edit"
@@ -1611,24 +1611,17 @@
<t t-raw="payment_tx_id.acquirer_id.pending_msg"/>
</t>
<t t-if="payment_tx_id.state == 'done'">
- <t t-raw="payment_tx_id.acquirer_id.done_msg"/>
+ <span t-if='payment_tx_id.acquirer_id.done_msg' t-raw="payment_tx_id.acquirer_id.done_msg"/>
</t>
<t t-if="payment_tx_id.state == 'cancel'">
<t t-raw="payment_tx_id.acquirer_id.cancel_msg"/>
</t>
- <t t-if="payment_tx_id.state == 'error'">
- <span t-if="payment_tx_id.acquirer_id.error_msg" t-raw="payment_tx_id.acquirer_id.error_msg"/>
- <span t-else="">An error occured while processing your payment. Please try again or contact your administrator.</span>
- </t>
<t t-if="payment_tx_id.state == 'authorized'">
<span>Your payment has been authorized.</span>
</t>
</div>
- <div t-if="payment_tx_id.acquirer_id.post_msg" class="card-body">
- <t t-raw="payment_tx_id.acquirer_id.post_msg" />
- <div t-if="payment_tx_id.acquirer_id.provider == 'transfer' and order.reference">
- <b>Communication: </b><span t-esc='order.reference'/>
- </div>
+ <div t-if="payment_tx_id.acquirer_id.provider == 'transfer' and order.reference" class="card-body">
+ <b>Communication: </b><span t-esc='order.reference'/>
</div>
<div t-if="(payment_tx_id.acquirer_id.qr_code == True) and (payment_tx_id.acquirer_id.provider == 'transfer') and (payment_tx_id.partner_id.country_id.code in ['BE', 'AT', 'DE', 'FI', 'NL']) and (payment_tx_id.currency_id.name == 'EUR')">
<div class="card-body" t-if="payment_tx_id.acquirer_id.journal_id.bank_account_id.qr_code_valid">