1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-24 15:49:39 +02:00
Commit graph

176 commits

Author SHA1 Message Date
Zach Gollwitzer
ac46c0c5a9
Fix income summary totals (#759) 2024-05-17 17:50:49 -04:00
Zach Gollwitzer
0d0f766ca1
Fix auto upgrade logic (#758) 2024-05-17 17:25:15 -04:00
Jakub Kottnauer
31ef3d85f5
Fix CSV import preview crash on empty values (#756) 2024-05-17 10:55:15 -04:00
Moses Gathuku
1bbfdee463
Prefer family currency preference than default currenty (#755) 2024-05-17 09:30:01 -04:00
Zach Gollwitzer
45ae4a9737
CSV Transaction Imports (#708)
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
2024-05-17 09:09:32 -04:00
Jakub Kottnauer
3d9ff3ad2a
Add start balance to manual accounts (#735)
* Add start_balance to accounts

* Add tests

* Cleanup

* Refactor code and add tests

* Update physical cash demo account to be manual

* Do not populate start_balance in migration

* Cleanup

* Review fixes

* Revert calc change

* Update app/models/exchange_rate.rb

Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
Signed-off-by: Jakub Kottnauer <jk@jakubkottnauer.com>

* Add test

* Fix syncable bug and update csv tests

---------

Signed-off-by: Jakub Kottnauer <jk@jakubkottnauer.com>
Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
2024-05-16 15:57:21 -04:00
Josh Pigford
daf7ff8ef4 Initial user should be an admin 2024-05-15 11:21:11 -05:00
Duy Le
943972690e
fix password resets (#741) 2024-05-13 13:23:24 -04:00
Ali Karbassi
b448446fbe
Add pointer to form submit buttons. (#740)
Signed-off-by: Ali Karbassi <ali@karbassi.com>
2024-05-13 13:06:20 -04:00
Jakub Kottnauer
6b0ef3a471
Fix crypto account creation modal crash (#727) 2024-05-08 15:30:13 -04:00
Jakub Kottnauer
1108e45596
Change default valuation currency to that of the related account, not family (#728) 2024-05-08 15:29:56 -04:00
Zach Gollwitzer
79789bd696
Enable all currencies for preferences (#722) 2024-05-07 16:19:00 -04:00
Nidhi Sarvaiya
0616d3e2b7
Allow two decimal for value in transaction history (#711) 2024-05-04 12:36:36 -04:00
Claude Ayitey
9563ac6334
Dashboard empty view (#707)
* 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>
2024-05-03 08:11:31 -04:00
Zach Gollwitzer
75cdddc6ca
Fix Merchants controller (#704)
* 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
2024-05-02 13:24:23 -04:00
Zach Gollwitzer
5dfbba403a
Test environment stability improvements (#703)
* 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
2024-05-02 13:18:18 -04:00
Jose Farias
4c5f8263bc
Implement transaction category management (#688)
* Singularize "transaction" in transaction-nested paths

* Refactor category badge partial

* Let modal content define its width

* Add contectual menu to transactions index

* Add null_category helper

* Implement category edits

* Fix inline transaction category badges

* Fix typos in system test paths

* Add missing translations

* Add decoration to color select controller

* Wire up transaction category creation

* Fix indent in color-select-controller

* Add button for clearing category from transaction

* Implement category deletions

* Fix existing modal sizes

* Use null_category in a single place

* Remove anemic method in category deletion controller

* reassign_and_destroy -> reassign_transactions_then_destroy

* Fix i18n

* Remove destroy action from CategoriesController callbacks

* transactions_merchant -> transaction_merchant

* reassign_transactions_then_destroy -> replace_and_destroy

* Add transaction category CRUD tests

* Add presence check for transaction_id

* Check replacement_category_id presence

* Test Transaction::Category#replace_and_destroy!
2024-05-02 09:24:31 -04:00
Christian
dc024d63b0
Feature/profile image uploads (#687)
* 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>
2024-04-30 13:38:33 -04:00
Josh Brown
19ee773d9b
Add ability to delete Maybe account (#698)
* Build out user deactivation and purging workflows

* Add i18n translations for user deletion

* Add tests for user deletion

* Fix lint issue
2024-04-30 11:40:31 -04:00
Thibaut Gorioux
6fdb8e8d69
Allow a self-hosted user to configure their SMTP settings directly from within the UI (#682)
* 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
2024-04-29 16:44:24 -04:00
Jakub Kottnauer
9549182462
Add Transaction Merchant management (#686)
* Add basid crud for merchant management

* Tweak UI and add localization

* Fix lint

* Add filtering by merchant

* Add tests

* Add stimulus controller to update avatar in merchant form

* Add line between merchant rows

* Change default merchant color

* Cleanup
2024-04-29 15:17:28 -04:00
Josh Brown
7f491f5064
Add trends to sidebar account list (#697) 2024-04-29 09:56:38 -04:00
Razvan Marescu
93953499a6
Fix profile page on fresh install (#684) 2024-04-27 08:59:02 -04:00
Zach Gollwitzer
e7fe1b5a4b
Reorder settings nav and add translations (#680)
* Reorder settings nav and add translations

* Attempt to fix flaky system test
2024-04-25 16:31:12 -04:00
Zach Gollwitzer
8ea7b54fe8
Update self host settings page styles (#677)
* Update page styles

* Add new styles to self host settings page

* Update self hosting page title
2024-04-25 14:55:39 -04:00
Zach Gollwitzer
da5021b6b0
Clean up i18n translations (#676)
* Clean up i18n translations

* Normalize translations
2024-04-25 14:41:12 -04:00
Josh Brown
be21d2b4fd
Refactor placeholder logo into common controller (#673)
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.
2024-04-25 10:32:45 -04:00
Zach Gollwitzer
5a5f13b46b
Add new settings profile and preferences pages (#672)
* Add new settings profile and preferences pages

* Fix lint errors
2024-04-25 07:54:56 -04:00
Jakub Kottnauer
ad4de99f1a
Add partial account sync support (#653)
* Add partial account sync support

* Fix indentation

* Use historical balance as base when doing partial sync

* Simplify controller crud tests

* Fix linter errors
2024-04-24 15:55:52 -04:00
Josh Brown
b3f8ab78d9
Implement savings rate insight card (#670) 2024-04-24 10:02:22 -04:00
Josh Brown
461fa672ff
Add income and spending insight cards to dashboard (#668)
* 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
2024-04-24 08:34:50 -04:00
Josh Brown
1f6e83ee91
Add pie chart for asset/debt allocation in dashboard view (#666)
* Add pie chart for asset/debt allocation in dashboard view

* Fix lint issue

* Fix z-index issue with tooltip under pie chart

* Fix spacing of dashboard charts
2024-04-23 12:05:18 -04:00
Mattia
8a29725562
Add transactions widget to dashboard page (#656) 2024-04-22 16:51:06 -04:00
Jose Farias
49b603f478
Flesh out D3 time series charts (#657)
* Reindent TimeSeries classes

* Fix spacing in time series tests

* Remove trend tests where current is nil

I think if we've gotten this far with a nil value for current, there's a data integrity problem.

If we allow this, we'll have to be very defensive in our code. Best to raise and fix early.

* Reindent Money class

* Refactor TimeSeries artifacts

* Use as_json in TimeSeries

* Bring back tests for trends where current is nil

* Bring back trend test

* Correctly enumerate trend test

* Use favorable_direction for trend_styles helper

* Make trend public in TimeSeries::Value

* Allow nil current values in trends

I think I might've gotten it wrong before, nils might appear in trends if values are unavailable for snapshots

* Clean up TimeSeries::Trend

* Skip trend values same class validations if any values are nil

* Refactor Money

* Remove object parsing in TimeSeries::Value

We're only every passing hashes

* Refactor trendline chart controller into a time series chart controller

* Replace trendline controller

* Implement empty state

* Port line-chart controller into time-series-chart

* Split out methods

* Group similar time series chart functionality

* Fix indicator color

* Fix empty state in time series chart

* Replace line-chart controller with time-series-chart controller

* Draw empty time series chart if less than 2 data points

* Fix favorable direction serialization

* Handle integers as well as money

* Fix favorable direction serialization

* Replace chart types with optional elements

* Prevent double-renders when displaying turbo caches of time series charts

* Remove ambiguities between time series and series data

* Improve time series chart property names

* Clean up tooltip template

* Match tooltip designs

* Apply trendline gradient

* Implement trendline split behavior

* Use same stroke width on all trend lines

* Sort time series data by date

* Support percentages

* Use data color for guideline circles

* Revert "Use data color for guideline circles"

This reverts commit f239a1e00f.

* Use expected defaults for time series chart

* Include day in time-series chart x-axis labels

* favorableDirection -> favorable_direction

* data -> datum where appropriate

* Hide change data in tooltip for percentages
2024-04-22 13:44:26 -04:00
Jose Farias
fc3ade392a
Refactor TimeSeries artifacts (#651)
* Reindent TimeSeries classes

* Fix spacing in time series tests

* Remove trend tests where current is nil

I think if we've gotten this far with a nil value for current, there's a data integrity problem.

If we allow this, we'll have to be very defensive in our code. Best to raise and fix early.

* Reindent Money class

* Refactor TimeSeries artifacts

* Use as_json in TimeSeries

* Bring back tests for trends where current is nil

* Bring back trend test

* Correctly enumerate trend test

* Use favorable_direction for trend_styles helper

* Make trend public in TimeSeries::Value

* Allow nil current values in trends

I think I might've gotten it wrong before, nils might appear in trends if values are unavailable for snapshots

* Clean up TimeSeries::Trend

* Skip trend values same class validations if any values are nil

* Refactor Money

* Remove object parsing in TimeSeries::Value

We're only every passing hashes
2024-04-22 08:30:42 -04:00
Thibaut Gorioux
5be1ced19e
Shared money input should respond to change in currency (#654)
* Add step method to currency

* Change amount placeholder and step, when currency select change

* Lint

* Add test with auth

* Extract request to specific service
2024-04-20 08:07:06 -04:00
Zach Gollwitzer
c46662c99f
Add apply button, improve transaction filters (#655)
* Add apply button, improve transaction filters

* Remove temp log

* Fix lint errors
2024-04-19 12:03:16 -04:00
Zach Gollwitzer
0277bc94f3
Small redesign of transaction filters (#650) 2024-04-18 17:05:37 -04:00
Jakub Kottnauer
0a1fa525d5
Fix modal height in Safari (#648) 2024-04-18 16:55:56 -04:00
Zach Gollwitzer
f5f624881f
Add placeholders for dashboard features (#642)
* Add placeholders for new dashboard

* Fix tests and lint errors
2024-04-18 10:32:36 -04:00
Zach Gollwitzer
9bda7efc3f
New Settings Menu, Routes and Controllers Organization (#641)
* Add new settings routes and controllers

* Add new settings view, restructure controllers and routes

* Fix lint errors
2024-04-18 07:56:51 -04:00
Harshit Chaudhary
39d57a167e
Fixed Data Access Restriction (#636)
Co-authored-by: Harshit Chaudhary <harshit.chaudhary@procol.in>
2024-04-16 15:58:53 -04:00
Jose Farias
cd8d741fe1
Add transaction modal flow (#633)
* Add transaction modal flow

* Preserve decimals when creating transactions
2024-04-16 14:44:31 -04:00
Thibaut Gorioux
a22c7a0e9c
Add persistent notification with dismiss and action button (#611)
* Update notification partial

* Update locals args

* Lint

* Move content to body in notification helper

* Avoid dynamic Tailwind class

* Styling

* Add notification to localization file

* Lint

* Normalize locales

* Auto dismiss by default
2024-04-16 13:33:51 -04:00
Pieter Beulque
fc631e698d
Allow 2 decimals when adding a balance (#614) 2024-04-15 11:27:39 -04:00
Zach Gollwitzer
5aca2ff9b6
Add zero-config self hosting on Render (#612)
* v1 of backend implementation for self hosting

* Add docs

* Add upgrades controller

* Add global helpers for self hosting mode

* Add self host settings controller

* Conditionally show self hosting settings

* Environment and config updates

* Complete upgrade prompting flow

* Update config for forked repo

* Move configuration of github provider within class

* Add upgrades cron

* Update deploy button

* Update guides

* Fix render deployer

* Typo

* Enable auto upgrades

* Fix cron

* Make upgrade modes more clear and consistent

* Trigger new available version

* Fix logic for displaying upgrade prompts

* Finish implementation

* Fix regression

* Trigger new version

* Add i18n translations

* trigger new version

* reduce caching time for testing

* Decrease cache for testing

* trigger upgrade

* trigger upgrade

* Only trigger deploy once

* trigger upgrade

* If target is commit, always upgrade if any upgrade is available

* trigger upgrade

* trigger upgrade

* Test release

* Change back to maybe repo for defaults

* Fix lint errors

* Clearer naming

* Fix relative link

* Add abs path

* Relative link

* Update docs
2024-04-13 09:28:45 -04:00
Pieter Beulque
2bbf120e2f
Use placeholder-shown: for reduced opacity (#615) 2024-04-13 08:49:48 -04:00
Mike
b812b6d8c9
Enhance currency selector to list 'All Others' after 'Popular' (#610) 2024-04-10 10:47:58 -04:00
Igor Alexandrov
b5c56f7775
Added lints for ERB templates (#609)
* 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
2024-04-09 08:08:58 -04:00
Pablo Porto
00a42be5c0
fix(authentication): Fix issues when users try to logout (#603)
Run set last login information action only when the user exist. Thus preventing running it after the logout method, which was causing an error
2024-04-08 07:26:46 -04:00