Files
odoo_source/addons/onboarding/tests/common.py
T
Florian Charlier 77f9ff50db [REF] *: use onboarding module
* = 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
2023-06-30 23:37:50 +02:00

60 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.onboarding.tests.case import TransactionCaseOnboarding
class TestOnboardingCommon(TransactionCaseOnboarding):
@classmethod
def setUpClass(cls):
super().setUpClass()
# Create two companies including Mitchell
cls.user_admin = cls.env.ref('base.user_admin')
cls.company_1 = cls.user_admin.company_id
cls.company_2 = cls.env['res.company'].create({
'currency_id': cls.env.ref('base.AUD').id,
'name': 'New Test Company',
})
cls.user_admin.company_ids |= cls.company_2
cls.onboarding_1, cls.onboarding_2 = cls.env['onboarding.onboarding'].create([
{
'name': f'Test Onboarding {onboarding_id}',
'route_name': f'onboarding{onboarding_id}',
'is_per_company': False,
} for onboarding_id in range(2)
])
# create a fake action for step opening
cls.action_fake_open_onboarding_step = cls.env['ir.actions.act_window'].create({
'name': 'action_fake_open_onboarding_step',
'res_model': 'onboarding.onboarding',
})
# Add two steps
cls.onboarding_1_step_1, cls.onboarding_1_step_2 = cls.env['onboarding.onboarding.step'].create([
{
'title': f'Test Onboarding 1 - Step {step_n}',
'onboarding_ids': [cls.onboarding_1.id],
'is_per_company': False,
'panel_step_open_action_name': 'action_fake_open_onboarding_step',
}
for step_n in range(1, 3)
])
# Add one of these in onboarding_2, and an "original" one
cls.onboarding_2.step_ids = [cls.onboarding_1_step_1.id]
cls.onboarding_2_step_2 = cls.env['onboarding.onboarding.step'].create([{
'title': 'Test Onboarding 2 - Step 2',
'onboarding_ids': [cls.onboarding_2.id],
'is_per_company': False,
'panel_step_open_action_name': 'action_fake_open_onboarding_step',
}])
# Create progress records as would happen through the controller
(cls.onboarding_1 + cls.onboarding_2).with_company(cls.company_1)._search_or_create_progress()
def activate_company(self, company):
self.onboarding_1_step_1 = self.onboarding_1_step_1.with_company(company)
self.onboarding_1_step_2 = self.onboarding_1_step_2.with_company(company)
self.onboarding_1 = self.onboarding_1.with_company(company)