summaryrefslogtreecommitdiff
path: root/addons/payment_adyen
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2019-07-18 13:56:34 +0000
committerVictor Feyens <vfe@odoo.com>2019-08-12 08:45:50 +0000
commitf0e059e6010605b5cce2a3055ed3aaf7730534fa (patch)
treea90dce7fae7b1bb6f04cd48abcae06ff74b36f71 /addons/payment_adyen
parent611fde6c8828d7d89b8c7f90b60484c58debcf73 (diff)
[REF] payment* : state based publishing
Replace website_published and environment by a generic state on payment.acquirer Payment acquirers aren't enabled by default. When setting their state to 'enabled' or 'test', it is verified the required fields for the provider are set.
Diffstat (limited to 'addons/payment_adyen')
-rw-r--r--addons/payment_adyen/data/payment_acquirer_data.xml4
-rw-r--r--addons/payment_adyen/models/payment.py4
-rw-r--r--addons/payment_adyen/tests/test_adyen.py11
-rw-r--r--addons/payment_adyen/views/payment_views.xml6
4 files changed, 15 insertions, 10 deletions
diff --git a/addons/payment_adyen/data/payment_acquirer_data.xml b/addons/payment_adyen/data/payment_acquirer_data.xml
index 18e3bb8afde..ba877ca5058 100644
--- a/addons/payment_adyen/data/payment_acquirer_data.xml
+++ b/addons/payment_adyen/data/payment_acquirer_data.xml
@@ -8,12 +8,8 @@
<field name="provider">adyen</field>
<field name="company_id" ref="base.main_company"/>
<field name="view_template_id" ref="adyen_form"/>
- <field name="environment">test</field>
<field name="pre_msg"><![CDATA[
<p>You will be redirected to the Adyen website after clicking on the payment button.</p>]]></field>
- <field name="adyen_merchant_account">dummy</field>
- <field name="adyen_skin_code">dummy</field>
- <field name="adyen_skin_hmac_key">dummy</field>
</record>
</data>
diff --git a/addons/payment_adyen/models/payment.py b/addons/payment_adyen/models/payment.py
index 66001bc69b4..584e28ab4a0 100644
--- a/addons/payment_adyen/models/payment.py
+++ b/addons/payment_adyen/models/payment.py
@@ -191,7 +191,9 @@ class AcquirerAdyen(models.Model):
return values
def adyen_get_form_action_url(self):
- return self._get_adyen_urls(self.environment)['adyen_form_url']
+ self.ensure_one()
+ environment = 'prod' if self.state == 'enabled' else 'test'
+ return self._get_adyen_urls(environment)['adyen_form_url']
class TxAdyen(models.Model):
diff --git a/addons/payment_adyen/tests/test_adyen.py b/addons/payment_adyen/tests/test_adyen.py
index 16462b74667..bb02532a06c 100644
--- a/addons/payment_adyen/tests/test_adyen.py
+++ b/addons/payment_adyen/tests/test_adyen.py
@@ -28,6 +28,13 @@ class AdyenCommon(PaymentAcquirerCommon):
self.dsmastercard = (('521234567890 1234', '737', 'user', 'password'))
self.dsvisa = (('4212345678901237', '737', 'user', 'password'))
self.mistercash = (('6703444444444449', None, 'user', 'password'))
+ self.adyen = self.env.ref('payment.payment_acquirer_adyen')
+ self.adyen.write({
+ 'adyen_merchant_account': 'dummy',
+ 'adyen_skin_code': 'dummy',
+ 'adyen_skin_hmac_key': 'dummy',
+ 'state': 'test',
+ })
@odoo.tests.tagged('post_install', '-at_install', 'external', '-standard')
@@ -35,8 +42,8 @@ class AdyenForm(AdyenCommon):
def test_10_adyen_form_render(self):
# be sure not to do stupid things
- adyen = self.env.ref('payment.payment_acquirer_adyen')
- self.assertEqual(adyen.environment, 'test', 'test without test environment')
+ adyen = self.adyen
+ self.assertEqual(adyen.state, 'test', 'test without test environment')
# ----------------------------------------
# Test: button direct rendering
diff --git a/addons/payment_adyen/views/payment_views.xml b/addons/payment_adyen/views/payment_views.xml
index 8d4beeb69b1..af6fac2582d 100644
--- a/addons/payment_adyen/views/payment_views.xml
+++ b/addons/payment_adyen/views/payment_views.xml
@@ -9,9 +9,9 @@
<field name="arch" type="xml">
<xpath expr='//group[@name="acquirer"]' position='inside'>
<group attrs="{'invisible': [('provider', '!=', 'adyen')]}">
- <field name="adyen_merchant_account"/>
- <field name="adyen_skin_code"/>
- <field name="adyen_skin_hmac_key"/>
+ <field name="adyen_merchant_account" attrs="{'required':[('provider', '=', 'adyen'), ('state', '!=', 'disabled')]}"/>
+ <field name="adyen_skin_code" attrs="{'required':[('provider', '=', 'adyen'), ('state', '!=', 'disabled')]}"/>
+ <field name="adyen_skin_hmac_key" attrs="{'required':[('provider', '=', 'adyen'), ('state', '!=', 'disabled')]}"/>
<a colspan="2" href="https://www.adyen.com/home/payment-services/online-payments" target="_blank">How to configure your Adyen account?</a>
</group>
</xpath>