* = account{_payment}, base, onboarding, payment{_stripe},
sale{_management}, web, website_sale
Use the dedicated onboarding module introduced in 16.0 instead of
the res.company model to store onboarding progress.
It allows
* onboarding steps to be reused across panels
* to support steps that should be completed per-database or per-company
* to clean the res.company model from many fields and methods,
* to remove many views, controllers, actions
Module-specific notes:
* account: We also clean the remaining two steps that are not
part of an accounting panel but make the most sense to be kept here.
* account_payment: Following 8e4e8eb8, the payment provider step is
added to the invoicing onboarding panel. We apply this change here too.
Also impacts the website_sale_dashboard panel (see related ENT PR).
(The "sale tax" one is currently used for to the website sale dashboard).
* payment: Note that the step was already not part of an onboarding
panel within this module.
* website_sale: We clean
* a field not used (The website_sale dashboard onboarding panel used
the payment_provider_onboarding_state field).
* a method that was only called from website_sale_dashboard, so it is
moved there. See related ENT PR.
Includes a few tests.
Moving views/templates/styling, as well as cleaning residual onboarding-related fields and methods in base, including populate.
This also includes restoring the "onboarding_complete" overlay panel
animating it to disappear after a few seconds so that it doesn't hide
text and block buttons to re-open steps.
Task-3025136
Part-of: odoo/odoo#104223
37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class PaymentWizard(models.TransientModel):
|
|
""" Override for the sale quotation onboarding panel. """
|
|
|
|
_inherit = 'payment.provider.onboarding.wizard'
|
|
_name = 'sale.payment.provider.onboarding.wizard'
|
|
_description = 'Sale Payment provider onboarding wizard'
|
|
|
|
def _get_default_payment_method(self):
|
|
return self.env.company.sale_onboarding_payment_method or 'digital_signature'
|
|
|
|
payment_method = fields.Selection(selection_add=[
|
|
('digital_signature', "Electronic signature"),
|
|
('stripe', "Credit & Debit card (via Stripe)"),
|
|
('paypal', "PayPal"),
|
|
('manual', "Custom payment instructions"),
|
|
], default=_get_default_payment_method)
|
|
|
|
def add_payment_methods(self):
|
|
self.env.company.sale_onboarding_payment_method = self.payment_method
|
|
if self.payment_method == 'digital_signature':
|
|
self.env.company.portal_confirmation_sign = True
|
|
if self.payment_method in ('paypal', 'stripe', 'other', 'manual'):
|
|
self.env.company.portal_confirmation_pay = True
|
|
|
|
return super().add_payment_methods()
|
|
|
|
def _start_stripe_onboarding(self):
|
|
""" Override of payment to set the sale menu as start menu of the payment onboarding. """
|
|
menu_id = self.env.ref('sale.sale_menu_root').id
|
|
return self.env.company._run_payment_onboarding_step(menu_id)
|