Budget page refactor: split into(All - Over Budget - On Track) (#1195)

* Optimize UI in budget

* update locales

* Optimize UI

* optimize suggested_daily_spending

* try over_budget and on_track

* update locale

* optimize

* add budgets_helper.rb

* fix

* hide no buget and no expense sub-catogory

* Optimize

* Optimize button on phone

* Fix Pipelock CI noise

* using section to render both overbudget and onTrack

* hide last ruler

* fix

* update test

---------

Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
This commit is contained in:
Tao Chen
2026-04-14 02:03:55 +08:00
committed by GitHub
parent fdc2ce1feb
commit aacbb5ef3b
17 changed files with 626 additions and 63 deletions

View File

@@ -162,6 +162,35 @@ class BudgetCategory < ApplicationRecord
available_to_spend.negative?
end
def budgeted?
display_budgeted_spending.to_d.positive?
end
def unbudgeted_with_spending?
!budgeted? && actual_spending.to_d.positive?
end
def over_budget_with_budget?
budgeted? && over_budget?
end
def on_track?
budgeted? && !over_budget?
end
def any_over_budget?
unbudgeted_with_spending? || over_budget_with_budget?
end
def visible_on_track?
return false unless on_track?
# Subcategories inheriting parent budget are hidden until they have spending.
return true unless subcategory? && inherits_parent_budget?
actual_spending.to_d.positive?
end
def near_limit?
!over_budget? && percent_of_budget_spent >= 90
end