Line 77 was `_ = super().action_run_migration()`, using `_` as a
throwaway variable name. That rebinds the module-level `_` (Odoo's
translation function imported at the top) to whatever super() returns
\u2014 in our case the parent's notification dict.
Lines 84/85 then call `_('Bank-Rec Migration Complete')` which is
now `some_dict('Bank-Rec Migration Complete')` \u2192
TypeError: 'dict' object is not callable.
User hit this when running the migration wizard from the menu.
Fix: drop the assignment; we don't actually use super()'s return value.
Made-with: Cursor
fusion_accounting_bank_rec
AI-assisted bank reconciliation for Odoo 19 Community — a Fusion-native
replacement for Enterprise's account_accountant bank reconciliation widget.
What it does
- Side-by-side parity with Enterprise's bank reconciliation UI (kanban + side panel, multi-currency, write-offs, attachments, chatter)
- AI-assistive: confidence-scored suggestions per bank line via the
fusion.reconcile.engine4-pass scoring pipeline (statistical + optional LLM re-rank) - Coexists with
account_accountant(Enterprise wins by default; Fusion menu appears only when Enterprise is uninstalled) - Migration-aware: bootstrap step backfills
fusion.reconcile.precedentfrom existingaccount.partial.reconcilerows so the AI has memory from day 1
Quick start
# Install
odoo --addons-path=... -i fusion_accounting_bank_rec
# Open the widget (when Enterprise's account_accountant is NOT installed)
# Apps → Bank Reconciliation → Reconcile Bank Lines
# When Enterprise IS installed: use Enterprise's UI; the engine + AI tools
# are still available via the AI chat.
Configuration
- Local LLM (LM Studio, Ollama):
fusion_accounting.openai_base_url=http://host.docker.internal:1234/v1fusion_accounting.openai_model= your local model namefusion_accounting.provider.bank_rec_suggest=openai
See also
CLAUDE.md— agent contextUPGRADE_NOTES.md— Odoo version anchoring