Multi-Currency FX Support
Add end-to-end multi-currency support, allowing users to track transactions, accounts, assets, and budgets with automatic conversion to the user's primary currency.
Backend
- Integrate Open Exchange Rates API for live and historical FX rates
- Smart fallback hierarchy: exact date → on-demand fetch → closest available date → 1:1 with warning
- Store
amount_primaryandfx_rate_usedon transactions, recurring transactions, accounts, and assets - Support manual FX override on transaction creation and CSV import
- Celery tasks for scheduled rate sync and historical backfill
- Dashboard aggregations, budget comparisons, and reports converted to primary currency
- Replace hardcoded BRL references with configurable default currency
Frontend
- Converted primary currency amount shown alongside original on transactions list and drill-down
- Currency flags and
fx_fallbackwarnings when 1:1 rate is used - Currency selector in transaction dialog with manual rate override
- Accounts, assets, budgets, and reports updated for multi-currency display
- Currency formatting utilities and i18n keys (en, pt-BR)
Tests
- Comprehensive FX rate service tests (1,410 lines)
- Extended import service tests for FX-aware CSV imports