Files
sure/app/views
Guillem Arias 71ca400f42 fix(goals): catch-up subtracts pending pledges from the demand
UX audit finding. The catch-up alert demanded $X/mo without
accounting for pledges the user had already recorded. The user
recorded a $20k pledge → catch-up still demanded a fresh $20k →
double-counting → stacked yellow CTAs telling them to do the
thing they'd just done.

Goal#catch_up_delta_money now subtracts `open_pledges.sum(amount)`
from the demand:

  delta = max(monthly_target − pace − sum(open_pledges), 0)

Uses the in-memory preloaded `open_pledges` collection (controllers
already eager-load it), so no extra query. The clamp at zero keeps
"$0/mo more" from rendering when pending pledges fully cover the
gap.

Alert branch in show.html.erb now also gates on
`@goal.catch_up_delta_money.amount.positive?` — when the demand
zeroes out via pending pledges, suppress the alert entirely.
Status pill stays `:behind` (because `pace < required`), but the
action surface goes quiet because the user already took it.
2026-05-14 21:54:41 +02:00
..
2025-11-24 19:52:34 +01:00
2025-11-24 19:52:34 +01:00
2026-04-22 10:10:18 +02:00
2026-03-22 10:48:54 +01:00
2026-03-25 17:47:04 +01:00
2026-03-11 15:54:01 +01:00
2026-03-25 17:47:04 +01:00
2026-03-29 17:28:07 +02:00
2026-02-19 19:55:10 +01:00
2025-04-11 09:28:00 -05:00
2025-07-18 08:30:00 -04:00