diff --git a/addons/iap/models/iap_account.py b/addons/iap/models/iap_account.py index f4be36c7dd4..386ca3d42cc 100644 --- a/addons/iap/models/iap_account.py +++ b/addons/iap/models/iap_account.py @@ -118,3 +118,26 @@ class IapAccount(models.Model): credit = -1 return credit + + def _neutralize(self): + super()._neutralize() + self.flush() + self.invalidate_cache() + + self.env.cr.execute(""" + INSERT INTO ir_config_parameter(key, value) + VALUES ('iap.endpoint', 'https://iap-sandbox.odoo.com') + ON CONFLICT (key) DO UPDATE SET value = 'https://iap-sandbox.odoo.com' + """) + + iap_service_endpoints = self._get_iap_config_parameters() + if iap_service_endpoints: + self.env.cr.execute(""" + UPDATE ir_config_parameter + SET value = 'https://iap-services-test.odoo.com' + WHERE key IN %s + """, [tuple(iap_service_endpoints)]) + + def _get_iap_config_parameters(self): + """override this method to extend the list with each parameter""" + return [] diff --git a/addons/partner_autocomplete/models/__init__.py b/addons/partner_autocomplete/models/__init__.py index 2932a119805..dadf1cd7c8b 100644 --- a/addons/partner_autocomplete/models/__init__.py +++ b/addons/partner_autocomplete/models/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import iap_account from . import iap_autocomplete_api from . import ir_http from . import res_partner diff --git a/addons/partner_autocomplete/models/iap_account.py b/addons/partner_autocomplete/models/iap_account.py new file mode 100644 index 00000000000..d5958c5a4c5 --- /dev/null +++ b/addons/partner_autocomplete/models/iap_account.py @@ -0,0 +1,10 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class IapAccount(models.Model): + _inherit = 'iap.account' + + def _get_iap_config_parameters(self): + return super()._get_iap_config_parameters() + ['iap.partner_autocomplete.endpoint'] diff --git a/addons/partner_autocomplete/tests/__init__.py b/addons/partner_autocomplete/tests/__init__.py index 15d64f46f30..5a13878239c 100644 --- a/addons/partner_autocomplete/tests/__init__.py +++ b/addons/partner_autocomplete/tests/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import test_neutralize from . import test_res_company diff --git a/addons/partner_autocomplete/tests/test_neutralize.py b/addons/partner_autocomplete/tests/test_neutralize.py new file mode 100644 index 00000000000..675cbc392a4 --- /dev/null +++ b/addons/partner_autocomplete/tests/test_neutralize.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import TransactionCase + + +class TestPartnerAutocompleteNeutralize(TransactionCase): + + def test_partner_autocomplete_neutralize(self): + iap_key = 'iap.partner_autocomplete.endpoint' + self.env['ir.config_parameter'].create({ + 'key': iap_key, + 'value': 'fake test iap partner autocomplete endpoint' + }) + + self.env['iap.account']._neutralize() + self.assertEqual(self.env['ir.config_parameter'].get_param(iap_key), 'https://iap-services-test.odoo.com') diff --git a/addons/sms/models/__init__.py b/addons/sms/models/__init__.py index d7153098f46..46cb752d259 100644 --- a/addons/sms/models/__init__.py +++ b/addons/sms/models/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import iap_account from . import ir_actions from . import ir_model from . import mail_followers diff --git a/addons/sms/models/iap_account.py b/addons/sms/models/iap_account.py new file mode 100644 index 00000000000..52abfc0b890 --- /dev/null +++ b/addons/sms/models/iap_account.py @@ -0,0 +1,10 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class IapAccount(models.Model): + _inherit = 'iap.account' + + def _get_iap_config_parameters(self): + return super()._get_iap_config_parameters() + ['sms.endpoint'] diff --git a/addons/sms/tests/__init__.py b/addons/sms/tests/__init__.py index 609586bec6b..d846aeb46c2 100644 --- a/addons/sms/tests/__init__.py +++ b/addons/sms/tests/__init__.py @@ -2,4 +2,5 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import common +from . import test_neutralize from . import test_sms_template diff --git a/addons/sms/tests/test_neutralize.py b/addons/sms/tests/test_neutralize.py new file mode 100644 index 00000000000..cb4df39b1d5 --- /dev/null +++ b/addons/sms/tests/test_neutralize.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import TransactionCase + + +class TestSmsNeutralize(TransactionCase): + + def test_sms_neutralize(self): + sms_key = 'sms.endpoint' + self.env['ir.config_parameter'].create({ + 'key': sms_key, + 'value': 'fake test sms endpoint' + }) + + self.env['iap.account']._neutralize() + self.assertEqual(self.env['ir.config_parameter'].get_param(sms_key), 'https://iap-services-test.odoo.com') diff --git a/addons/snailmail/models/__init__.py b/addons/snailmail/models/__init__.py index 37c70029e12..0126d49e07d 100644 --- a/addons/snailmail/models/__init__.py +++ b/addons/snailmail/models/__init__.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -from . import res_company -from . import res_partner -from . import res_config_settings -from . import mail_notification -from . import snailmail_letter +from . import iap_account from . import ir_actions_report from . import ir_qweb_fields from . import mail_message +from . import mail_notification +from . import res_company +from . import res_config_settings +from . import res_partner +from . import snailmail_letter diff --git a/addons/snailmail/models/iap_account.py b/addons/snailmail/models/iap_account.py new file mode 100644 index 00000000000..65e2609e371 --- /dev/null +++ b/addons/snailmail/models/iap_account.py @@ -0,0 +1,10 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class IapAccount(models.Model): + _inherit = 'iap.account' + + def _get_iap_config_parameters(self): + return super()._get_iap_config_parameters() + ['snailmail.endpoint'] diff --git a/addons/snailmail/tests/__init__.py b/addons/snailmail/tests/__init__.py new file mode 100644 index 00000000000..df749d5a467 --- /dev/null +++ b/addons/snailmail/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_neutralize diff --git a/addons/snailmail/tests/test_neutralize.py b/addons/snailmail/tests/test_neutralize.py new file mode 100644 index 00000000000..6e34b1168b2 --- /dev/null +++ b/addons/snailmail/tests/test_neutralize.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import TransactionCase + + +class TestSnailMailNeutralize(TransactionCase): + + def test_snailmail_neutralize(self): + key = 'snailmail.endpoint' + self.env['ir.config_parameter'].create({ + 'key': key, + 'value': 'fake test snailmail endpoint' + }) + + self.env['iap.account']._neutralize() + self.assertEqual(self.env['ir.config_parameter'].get_param(key), 'https://iap-services-test.odoo.com') diff --git a/addons/website_crm_iap_reveal/models/__init__.py b/addons/website_crm_iap_reveal/models/__init__.py index adb2668c05c..43835711f67 100644 --- a/addons/website_crm_iap_reveal/models/__init__.py +++ b/addons/website_crm_iap_reveal/models/__init__.py @@ -4,4 +4,5 @@ from . import crm_lead from . import crm_reveal_rule from . import crm_reveal_view +from . import iap_account from . import ir_http diff --git a/addons/website_crm_iap_reveal/models/iap_account.py b/addons/website_crm_iap_reveal/models/iap_account.py new file mode 100644 index 00000000000..7faa332600b --- /dev/null +++ b/addons/website_crm_iap_reveal/models/iap_account.py @@ -0,0 +1,10 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class IapAccount(models.Model): + _inherit = 'iap.account' + + def _get_iap_config_parameters(self): + return super()._get_iap_config_parameters() + ['reveal.endpoint'] diff --git a/addons/website_crm_iap_reveal/tests/__init__.py b/addons/website_crm_iap_reveal/tests/__init__.py index af852259937..e8dcca99d39 100644 --- a/addons/website_crm_iap_reveal/tests/__init__.py +++ b/addons/website_crm_iap_reveal/tests/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import test_lead_reveal +from . import test_neutralize diff --git a/addons/website_crm_iap_reveal/tests/test_neutralize.py b/addons/website_crm_iap_reveal/tests/test_neutralize.py new file mode 100644 index 00000000000..de1868897f9 --- /dev/null +++ b/addons/website_crm_iap_reveal/tests/test_neutralize.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import TransactionCase + + +class TestIapLeadWebsiteNeutralize(TransactionCase): + + def test_iap_lead_website_neutralize(self): + ICP = self.env['ir.config_parameter'] + key = 'reveal.endpoint' + ICP.set_param(key, 'Fake test reveal endpoint') + + self.env['iap.account']._neutralize() + self.assertEqual(ICP.get_param(key), 'https://iap-services-test.odoo.com')