mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
* 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
37 lines
1.2 KiB
Ruby
37 lines
1.2 KiB
Ruby
class PagesController < ApplicationController
|
|
include Filterable
|
|
|
|
def dashboard
|
|
snapshot = Current.family.snapshot(@period)
|
|
@net_worth_series = snapshot[:net_worth_series]
|
|
@asset_series = snapshot[:asset_series]
|
|
@liability_series = snapshot[:liability_series]
|
|
|
|
snapshot_transactions = Current.family.snapshot_transactions
|
|
@income_series = snapshot_transactions[:income_series]
|
|
@spending_series = snapshot_transactions[:spending_series]
|
|
|
|
snapshot_account_transactions = Current.family.snapshot_account_transactions
|
|
@top_spenders = snapshot_account_transactions[:top_spenders]
|
|
@top_earners = snapshot_account_transactions[:top_earners]
|
|
|
|
@account_groups = Current.family.accounts.by_group(period: @period, currency: Current.family.currency)
|
|
@transactions = Current.family.transactions.limit(5).order(date: :desc)
|
|
|
|
# TODO: Placeholders for trendlines
|
|
placeholder_series_data = 10.times.map do |i|
|
|
{ date: Date.current - i.days, value: Money.new(0) }
|
|
end
|
|
@savings_rate_series = TimeSeries.new(10.times.map { |i| { date: Date.current - i.days, value: 0 } })
|
|
@investing_series = TimeSeries.new(placeholder_series_data)
|
|
end
|
|
|
|
def changelog
|
|
end
|
|
|
|
def feedback
|
|
end
|
|
|
|
def invites
|
|
end
|
|
end
|