* Clean up transaction show view, add delete button
* Clean up tailwind global styles, add switch
* Bulk deletion controller and tests
* Normalize translations
* Add bulk deletion button and form
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
* Added i18n for the Dashboard page.
* Add a check for blank. Empty returned an error since @accounts was nil.
* Remove subtitle when accounts are empty..
* Increased the padding-right value for the buttons. The sapce occupied by the icon made the button elements unbalanced.
* Add refactor as suggested by Zach (https://github.com/maybe-finance/maybe/pull/707#discussion_r1588506443)
* Extract empty state into a partial.
* Render new partial if no accounts exist.
* Moved translation text to shared directory.
* Fix padding-right on New account button.
* Lint fix
* i18n tasks
* Get tests passing with :test queue adapter
---------
Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
* 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
* Fix merchants controller actions
* 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>
* Add setting fields to model
* Allow to configure SMTP settings
* Normalize locales
* Cleanup locales
* Remove 'coming soon'
* fix test
* Reset credentials
* Reset development config
* Check smtp spelling
* Use post instead of get method
* TLS ENV variable is more descriptive
* Rework application mailer
* Follow rails convention for mailer action params
* Reset schema.rb to main
* Test WIP
* Add test for controller and mailer
* Move tests from controller to model
* Custom error message if settings are not all present
* Comment smtp config in development env
* Add default tls enabled value
* Rubocop
* Fix controller test
* Reset credentials
* Normalize locales
* Test
* fix test
* Fix application mailer test that fails randomly
* Error flash message instead of notice
* Rework application mailer tests
This can be updated to redirect/pull from third party sources in future,
with the option of always falling back to the placeholder if there are
any failures.
* Generate time series for rolling 30 day sum of income and spending
* Highlight accounts with most income and spending in the last 30 days
* Aggregate chips after 3 top accounts in insight card
* Refactor aggregation filter
I think this is easier to read and understand whats happening at a
glance
* Refactor and tidy
* Use family currency for insight cards
* Further reduce risk of sql injection
* Fix lint
* Refactor rolling total queries
* Add test for transaction snapshot
* Add step method to currency
* Change amount placeholder and step, when currency select change
* Lint
* Add test with auth
* Extract request to specific service
* 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 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
* 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
* 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