* Added erblint and fixed offenses
* Added erblint bintstub. Included erblint into CI
* Merged GitHub Actions tasks for rubocop and erblint into one
* Added config for erblint.
* Reverted erblint call in the CI
* Add last_sync_date to accounts table
* Always sync Account after Valuation or Transaction creation, update, or deletion.
Skip sync if user clicks "sync" button without changing anything
* Sync user accounts daily based on last_login_at
* Add transaction filtering by category
* Link label to checkbox
* Keep the dropdown open when clicked to allow tab change
* Show the badge with color and name when filter is applied
* Reduce color height
* Add ability to delete Account
Issue #571
* Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists
* Use custom confirm modal for account deletion
* Revert "Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists"
This reverts commit 8dbf634819.
* Rough sketch of implementation
* Consolidate auto submit controller
* Store ransack params in session
* Improve how summary is calculated for txns
* Implement filters UI
* Implement Synth as an exchange rate provider
* Add assertions to provider interface test
* Assert the correct provider error is raised
* Remove unnecessary parens
* Support all currencies, handle outside DB
* Remove currencies from seed
* Fix account balance namespace
* Set default currency on authentication
* Cache currency instances
* Implement multi-currency syncs with tests
* Series fallback, passing tests
* Fix conflicts
* Make value group concrete class that works with currency values
* Fix migration conflict
* Update tests to expect multi-currency results
* Update account list to use group method
* Namespace updates
* Fetch unknown exchange rates from API
* Fix date range bug
* Ensure demo data works without external API
* Enforce cascades only at DB level
* feat: add crypto account type to demo data
* fix: set currency to BTC, revert schema migration change and fix tests
* fix: update dates in time_series tests
* Clean up time series models
* Add value group rollup class for summarizing hierarchical data
* Integrate new classes
* Update UI to use new patterns
* Update D3 charts to expect new data format
* Clean up account model
* More cleanup
* Money improvements
* Use new money fields
* Remove invalid fixture data to avoid orphaned accountables
* Update time series to work better with collections
* Fix tests and UI bugs
* Adds basic validations for required fields
Also deletes a few extraneous .keep files
Does not add the family_id required field for user, since that breaks the basic test setup
* Restore keep files to this branch
* Remove Credit model and validate models behind ids
* Restore concerns .keep
* Create sidebar element and working with turbo
* Add overview fields
* Add columns to transations and tidy modal
* permit new transaction params
* Add autosubmit form controller
* remove unused show code
* install pagy
* add pagy to controller, display default pagy UI
* display hardcoded custom UI to confirm styling
* implement custom UI with pagy methods
* move pagination into partial
* use lucide icons
* only display pagination if 2 or more pages are available
* add mobile pagination placeholder
* use link_to and display greyed out buttons when no prev or next needed
* sort transactions by date so grouping works appropriately with pagination
* add space between mobile view buttons
* remove debugging
* Handle Turbo updates with tabs
Fixes #491
* Add Filterable concern for controllers
* Add trendline chart
* Extract common UI to partials
* Series refactor
* Put placeholders for calculations in
* Add classification generated column to account
* Add basic net worth calculation
* Add net worth tests
* Get net worth graph working
* Fix lint errors
* Implement asset grouping query
* Make trends and series more intuitive
* Fully functional dashboard
* Remove logging
* Hide the additional arrow shown on safari browser for summary tag
* Move global css to tailwind config
---------
Co-authored-by: Sriram Krishnan <sriram@seafoodsouq.com>
* Rename account balance field for clarity
`original_balance` and `original_currency` may infer that these values are "original" to the account. In reality, they represent the "current" balance and currency on the account.
* Prepare fixture data for account sync testing
* Update to new field
* Fix conflicts
* Remove local schema change