Split 49 modules/suites into independent git repos; untrack from monorepo
Some checks failed
fusion_accounting CI / test (fusion_accounting_ai) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_core) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_migration) (push) Has been cancelled

Each top-level module/suite folder is now its own private repo on GitHub
(gsinghpal/<name>) and gitea (admin/<name>), with a fresh single initial
commit. The monorepo no longer tracks them (added to .gitignore + git rm
--cached); working-tree files are retained on disk and managed in their
own repos. The monorepo keeps shared root files (CLAUDE.md, docs/, scripts/,
tools/, AGENTS.md, WIP/obsolete dirs) and full history.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-07 01:54:34 -04:00
parent 2a7b315e98
commit a66cdefc01
6740 changed files with 51 additions and 1277207 deletions

View File

@@ -1,73 +0,0 @@
"""Pre-migration: convert legacy act_window report actions to client actions.
In 19.0.1.1.1 we shipped 11 ``ir.actions.act_window`` records with
``view_mode='fusion_reports'``. Odoo's act_window resolver requires a
matching ``ir.ui.view`` record per view_mode, so clicking those menus
raised "View types not defined fusion_reports".
19.0.1.1.2 reissues the same xml_ids as ``ir.actions.client`` records
with ``tag='fusion_reports'``. Odoo refuses to update a record across
models, so this pre-migration drops the legacy records before the new
data file loads. Idempotent: safe to re-run.
"""
import logging
_logger = logging.getLogger(__name__)
LEGACY_XIDS = (
'action_fusion_report_pnl',
'action_fusion_report_balance_sheet',
'action_fusion_report_trial_balance',
'action_fusion_report_general_ledger',
'action_fusion_report_cash_flow',
'action_fusion_report_executive_summary',
'action_fusion_report_annual_statements',
'action_fusion_report_tax_summary',
'action_fusion_report_aged_receivable',
'action_fusion_report_aged_payable',
'action_fusion_report_partner_ledger',
)
def migrate(cr, version):
if not version:
return
deleted = 0
for name in LEGACY_XIDS:
cr.execute(
"""
SELECT id, model, res_id
FROM ir_model_data
WHERE module = 'fusion_accounting_reports' AND name = %s
""",
(name,),
)
row = cr.fetchone()
if not row:
continue
ir_md_id, model, res_id = row
if model != 'ir.actions.act_window':
continue
cr.execute(
"DELETE FROM ir_act_window WHERE id = %s",
(res_id,),
)
cr.execute(
"DELETE FROM ir_actions WHERE id = %s",
(res_id,),
)
cr.execute(
"DELETE FROM ir_model_data WHERE id = %s",
(ir_md_id,),
)
deleted += 1
_logger.info("Dropped legacy act_window for fusion_accounting_reports.%s", name)
if deleted:
_logger.info(
"fusion_accounting_reports pre-migration: dropped %d legacy "
"act_window records to make way for ir.actions.client variants.",
deleted,
)