feat(fusion_accounting_followup): per-partner state migration from Enterprise
Migrates Enterprise account_followup per-partner state to Fusion fields: - res.partner.followup_status -> fusion_followup_status (action_due/no_action) - res.partner.payment_next_action_date -> fusion_followup_paused_until (when future-dated; sets status to 'paused') - res.partner.followup_line_id -> fusion_followup_last_level_id (resolved by name match against migrated levels) Wired into fusion.migration.wizard.action_run_migration after the existing _followup_bootstrap_step. Idempotent: skips partners whose Fusion state is already non-default. Defensive against missing Enterprise fields (each field probed individually before use). Closes the per-partner state migration gap that was blocking Enterprise account_followup uninstall. Made-with: Cursor
This commit is contained in:
@@ -19,3 +19,12 @@ class TestFollowupMigrationRoundTrip(TransactionCase):
|
||||
# Second run skips what first created (or both no-op)
|
||||
if first['enterprise_module_present']:
|
||||
self.assertGreaterEqual(second['skipped'], first['created'])
|
||||
|
||||
def test_partner_state_bootstrap_step(self):
|
||||
"""Verify the partner-state migration step runs without error."""
|
||||
wizard = self.env['fusion.migration.wizard'].create({})
|
||||
result = wizard._followup_partner_state_bootstrap_step()
|
||||
self.assertEqual(result['step'], 'followup_partner_state')
|
||||
self.assertIn(result['enterprise_module_present'], [True, False])
|
||||
self.assertGreaterEqual(result['updated'], 0)
|
||||
self.assertGreaterEqual(result['skipped'], 0)
|
||||
|
||||
Reference in New Issue
Block a user