"""Reports-specific migration step. Ensures the 4 CORE report definitions are present after migration.""" import logging from odoo import models _logger = logging.getLogger(__name__) class FusionMigrationWizard(models.TransientModel): _inherit = "fusion.migration.wizard" def _reports_bootstrap_step(self): """Verify all 4 CORE report definitions exist.""" Report = self.env['fusion.report'].sudo() expected = ['pnl', 'balance_sheet', 'trial_balance', 'general_ledger'] present = Report.search([('report_type', 'in', expected)]).mapped('report_type') missing = set(expected) - set(present) return { 'step': 'reports_bootstrap', 'expected_reports': expected, 'present_reports': list(present), 'missing_reports': list(missing), } def action_run_migration(self): """Override to add reports-bootstrap step at the end of the chain.""" result = super().action_run_migration() if hasattr(super(), 'action_run_migration') else None try: self._reports_bootstrap_step() except Exception as e: _logger.warning("reports_bootstrap_step failed: %s", e) return result