From 2774e276ace50b73bf0911085d75cf11200153d8 Mon Sep 17 00:00:00 2001 From: niyasraphy Date: Fri, 11 Nov 2022 06:38:35 +0000 Subject: [PATCH] [FIX] website_payment_paypal: trace back accessing settings after deleting paypal traceback is raised in settings page and on clicking activate stripe button after deleting the paypal payment provider from the database closes odoo/odoo#105692 X-original-commit: 4d34606baf314c78d608904720778ff2ac6bf5b4 Signed-off-by: Antoine Vandevenne (anv) --- addons/payment/models/res_company.py | 15 +++++++++------ .../models/res_config_settings.py | 11 ++++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/addons/payment/models/res_company.py b/addons/payment/models/res_company.py index e4ceac7d6a0..64176c4eef5 100644 --- a/addons/payment/models/res_company.py +++ b/addons/payment/models/res_company.py @@ -45,12 +45,15 @@ class ResCompany(models.Model): stripe_provider.journal_id = stripe_provider.journal_id or default_journal if stripe_provider.state == 'disabled': # The onboarding step has never been run # Configure PayPal - paypal_provider = new_env.ref('payment.payment_provider_paypal') - if not paypal_provider.paypal_email_account: - paypal_provider.paypal_email_account = new_env.user.email or new_env.company.email - if paypal_provider.state == 'disabled' and paypal_provider.paypal_email_account: - paypal_provider.state = 'enabled' - paypal_provider.journal_id = paypal_provider.journal_id or default_journal + paypal_provider = new_env.ref( + 'payment.payment_provider_paypal', raise_if_not_found=False + ) + if paypal_provider: + if not paypal_provider.paypal_email_account: + paypal_provider.paypal_email_account = new_env.user.email or new_env.company.email + if paypal_provider.state == 'disabled' and paypal_provider.paypal_email_account: + paypal_provider.state = 'enabled' + paypal_provider.journal_id = paypal_provider.journal_id or default_journal return stripe_provider.action_stripe_connect_account(menu_id=menu_id) diff --git a/addons/website_payment_paypal/models/res_config_settings.py b/addons/website_payment_paypal/models/res_config_settings.py index 2f254162d7b..00d8a460c4b 100644 --- a/addons/website_payment_paypal/models/res_config_settings.py +++ b/addons/website_payment_paypal/models/res_config_settings.py @@ -12,12 +12,13 @@ class ResConfigSettings(models.TransientModel): @api.model def get_values(self): res = super().get_values() - paypal = self.env.ref('payment.payment_provider_paypal').sudo() - res['paypal_email_account'] = paypal.paypal_email_account + paypal = self.env.ref('payment.payment_provider_paypal', raise_if_not_found=False) + if paypal: + res['paypal_email_account'] = paypal.sudo().paypal_email_account return res def set_values(self): super().set_values() - paypal = self.env.ref('payment.payment_provider_paypal').sudo() - if paypal.paypal_email_account != self.paypal_email_account: - paypal.paypal_email_account = self.paypal_email_account + paypal = self.env.ref('payment.payment_provider_paypal', raise_if_not_found=False) + if paypal and paypal.sudo().paypal_email_account != self.paypal_email_account: + paypal.sudo().paypal_email_account = self.paypal_email_account