[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) <anv@odoo.com>
This commit is contained in:
niyasraphy
2022-11-18 12:57:52 +01:00
parent 90ca48bf25
commit 2774e276ac
2 changed files with 15 additions and 11 deletions
+9 -6
View File
@@ -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)
@@ -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