fix: Convert goal values to float before progress calculation
TypeError: unsupported operand type(s) for -: 'decimal.Decimal' and 'float' PostgreSQL NUMERIC columns return Decimal objects. Must convert current_value, target_value, start_value to float before passing to calculate_goal_progress_pct(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8da577fe58
commit
112226938d
|
|
@ -400,6 +400,10 @@ def _score_weight_trend(profile_id: str) -> Optional[int]:
|
|||
if None in [current, target]:
|
||||
return None
|
||||
|
||||
# Convert Decimal to float (PostgreSQL NUMERIC returns Decimal)
|
||||
current = float(current)
|
||||
target = float(target)
|
||||
|
||||
# If no start_value, use oldest weight in last 90 days
|
||||
if start is None:
|
||||
with get_db() as conn:
|
||||
|
|
@ -414,6 +418,8 @@ def _score_weight_trend(profile_id: str) -> Optional[int]:
|
|||
""", (profile_id,))
|
||||
row = cur.fetchone()
|
||||
start = float(row['weight']) if row else current
|
||||
else:
|
||||
start = float(start)
|
||||
|
||||
# Progress percentage
|
||||
progress_pct = calculate_goal_progress_pct(current, target, start)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user