[FIX] payment: False in reference

- Activate a payment provider (e.g. Stripe)
- As an unconnected user, visit
  website_payment/pay?reference=MY_REF&amount=1337&acquirer_id=ACQUIRER
- Pay

After payment, the user is redirected to the `website_payment/confirm`
page. However, the generated reference contains `False`, which is
confusing.

This happens because the route is generated with the `False` string,
which is used later on in the computation reference.

We fix the URL generation by not adding the partner if it is not set.

opw-2201289

closes odoo/odoo#46277

X-original-commit: 7c5f5958a4ef20ac67ad6c87c3ea0c94b858a74b
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
Nicolas Martinelli
2020-02-25 16:16:10 +00:00
parent 8b88f743b7
commit 609e948739
@@ -51,8 +51,8 @@
<p><b>Amount:</b> <t t-esc="amount" t-options="{'widget': 'monetary', 'display_currency': currency}"/></p>
<t t-call="payment.payment_tokens_list" t-if="reference and amount and currency">
<t t-set="mode" t-value="'payment'"/>
<t t-set="prepare_tx_url" t-value="'/website_payment/transaction/v2/' + str(amount) + '/' + str(currency.id) + '/' + reference + '/' + str(partner_id)"/>
<t t-set="form_action" t-value="'/website_payment/token/v2/' + str(amount) + '/' + str(currency.id) + '/' + reference + '/' + str(partner_id)"/>
<t t-set="prepare_tx_url" t-value="'/website_payment/transaction/v2/' + str(amount) + '/' + str(currency.id) + '/' + reference + (('/' + str(partner_id)) if partner_id else '')"/>
<t t-set="form_action" t-value="'/website_payment/token/v2/' + str(amount) + '/' + str(currency.id) + '/' + reference + (('/' + str(partner_id)) if partner_id else '')"/>
</t>
<div t-if="not acquirers" class="alert alert-danger" role="alert">
<p>No payment acquirer found.</p>