* Basic plaid data model and linking
* Remove institutions, add plaid items
* Improve schema and Plaid provider
* Add webhook verification sketch
* Webhook verification
* Item accounts and balances sync setup
* Provide test encryption keys
* Fix test
* Only provide encryption keys in prod
* Try defining keys in test env
* Consolidate account sync logic
* Add back plaid account initialization
* Plaid transaction sync
* Sync UI overhaul for Plaid
* Add liability and investment syncing
* Handle investment webhooks and process current day holdings
* Remove logs
* Remove "all" period select for performance
* fix amount calc
* Remove todo comment
* Coming soon for investment historical data
* Document Plaid configuration
* Listen for holding updates
* Initial pass at stock filtering
* Rough in filter
* Cleaning up security listing
* Tweak to search function
* Combobox tweaks
* Clean up search query
* Update trades test with combobox
* Update securities.yml
* User tickers as primary lookup symbol instead of isin
* Add security price provider
* Fetch security prices in bulk to improve sync performance
* Fetch prices in bulk, better mocking for tests
An overhaul and cleanup of the transactions feature including:
- Simplification of transactions search and filtering
- Consolidation of account sync logic after transaction change
- Split sidebar modal and modal into "drawer" and "modal" concepts
- Refactor of transaction partials and folder organization
- Cleanup turbo frames and streams for transaction updates, including new Transactions::RowsController for inline updates
- Refactored and added several integration and systems tests
Introduces a basic CSV import module for bulk-importing account transactions.
Changes include:
- User can load a CSV
- User can configure the column mappings for a CSV
- Imported CSV shows invalid cells
- User can clean up their data directly in the UI
- User can see a preview of the import rows and confirm import
- Layout refactor + Import nav stepper
- System test stability improvements
* Add climate_control gem and test helper
* Replace ENV mods in upgrades test
* Replace ENV mods in registrations test
* Remove ENV references in hostings controller
* Update ENV refs in mailer test
* ActiveStorage cleanup
* Consolidate queue config so appropriate adapter runs in test environment
* Make test environment more explicit
* Centralize self hosting config
* Remove flaky system test
* Introduce ActiveStorage
* Add active storage related service gems
* Update storage.yml
* Install image processing gem
- sudo apt-get install libvips (required dependency)
* Set default active storage service
* Add profile image to user model
* Amend form to allow profile images to be saved, introduce stimulus controller.
* Purge image when form is blank
* Update markup/stimulus controller
* Add test for profile image uplaods
* Add profile image validation
* Use rails guide gem versions
* Use correct ERB syntax and make all storage options configurable
* Ensure form submits when user clears profile image
* Add profile image thumbnail method
* Extract profile image to a partial
* Updates env.example and storage.yml
* Fix bug with double form save
* Add profile image to the sidenav
* Update production config
* Fix ERB formatting
* normalize en.yml
* Handle non-square images
* Use pre-processing on thumbnail variant
* Resovle gemfile.lock issues
* Rubocop style changes
---------
Signed-off-by: Christian <47796704+crobbo@users.noreply.github.com>
Co-authored-by: Christian Robinson <christian@robbo.dev>
* 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
* Implement Synth as an exchange rate provider
* Add assertions to provider interface test
* Assert the correct provider error is raised
* Remove unnecessary parens
* 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
* Initial foundational pass at multi-currency
* Default format currency
* More work on currency and exchanging
* Re-build currencies on change
* Currency import/setup
* Background job overhaul + cheaper OXR plan support
* Lint fixes
* Test fixes
* Multi-currency setup instructions
* Allow decimals in the balance field
* Spacing fix for form
---------
Signed-off-by: Josh Pigford <josh@joshpigford.com>
* Add Lucide gem (#364)
* feat: add cursor pointer in the log-in and create account pages, also make full with (it's cutted right now) the fileds in the settings edit page
* feat: skip system test with an explanation instead of comment them
* fix typo in the skip
* feat: add lucide gem
* Add reusable modal (#362)
* Remove unused form
* Add reusable modal
* Prelim styling
* Add instructions
---------
Co-authored-by: Josh Pigford <josh@joshpigford.com>
* Add keyboard navigation to new account selector (#375)
* New account menu (#372)
* New account menu
* Styling tweaks
---------
Signed-off-by: Josh Pigford <josh@joshpigford.com>
* Entry method links (#376)
* Initial add account form (#378)
* Initial add account form
* Unused
---------
Signed-off-by: Josh Pigford <josh@joshpigford.com>
Co-authored-by: Pedro López Mareque <Pedro.lopez.mareque@gmail.com>
Co-authored-by: Rob Zolkos <rob@zolkos.com>
Co-authored-by: Josh Brown <josh@joossh.com>