Adds fusion.period.picker.wizard - a guided entry point that lets users pick a report type and a common period preset (this/last month, quarter, YTD, last year, or custom range). The wizard uses the existing date_periods service helpers (month_bounds, quarter_bounds, fiscal_year_bounds) to pre-fill date_from / date_to via @api.onchange. action_open_report returns a client action that launches the OWL reports viewer with default_report_type / default_date_from / default_date_to / default_comparison in the context. Tests: 3 new (test_period_picker.py). Net 111 -> 114. Made-with: Cursor
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""Tests for period picker wizard."""
|
|
|
|
from odoo.tests.common import TransactionCase, tagged
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestPeriodPickerWizard(TransactionCase):
|
|
|
|
def test_this_month_preset_fills_dates(self):
|
|
wizard = self.env['fusion.period.picker.wizard'].create({
|
|
'report_type': 'pnl',
|
|
'period_preset': 'this_month',
|
|
})
|
|
wizard._onchange_period_preset()
|
|
self.assertTrue(wizard.date_from)
|
|
self.assertTrue(wizard.date_to)
|
|
self.assertEqual(wizard.date_from.day, 1)
|
|
|
|
def test_this_year_preset_uses_ytd(self):
|
|
wizard = self.env['fusion.period.picker.wizard'].create({
|
|
'report_type': 'pnl',
|
|
'period_preset': 'this_year',
|
|
})
|
|
wizard._onchange_period_preset()
|
|
self.assertEqual(wizard.date_from.month, 1)
|
|
self.assertEqual(wizard.date_from.day, 1)
|
|
|
|
def test_action_open_report_returns_client_action(self):
|
|
wizard = self.env['fusion.period.picker.wizard'].create({
|
|
'report_type': 'pnl',
|
|
'period_preset': 'this_year',
|
|
})
|
|
wizard._onchange_period_preset()
|
|
action = wizard.action_open_report()
|
|
self.assertEqual(action['type'], 'ir.actions.client')
|
|
self.assertEqual(action['tag'], 'fusion_reports')
|