From 285184ba892c58ddbcdcd7c993c67f9160e9463d Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 28 Mar 2026 20:46:21 +0100 Subject: [PATCH] fix: add missing statistics import and update focus_weights function Two critical fixes for placeholder resolution: 1. Missing import in activity_metrics.py: - Added 'import statistics' at module level - Fixes calculate_monotony_score() and calculate_strain_score() - Error: NameError: name 'statistics' is not defined 2. Outdated focus_weights function in body_metrics.py: - Changed from goal_utils.get_focus_weights (uses old focus_areas table) - To data_layer.scores.get_user_focus_weights (uses new v2.0 system) - Fixes calculate_body_progress_score() - Error: UndefinedTable: relation "focus_areas" does not exist These were causing many placeholders to fail silently. Co-Authored-By: Claude Opus 4.6 --- backend/data_layer/activity_metrics.py | 1 + backend/data_layer/body_metrics.py | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/data_layer/activity_metrics.py b/backend/data_layer/activity_metrics.py index 4c7718a..055c45e 100644 --- a/backend/data_layer/activity_metrics.py +++ b/backend/data_layer/activity_metrics.py @@ -17,6 +17,7 @@ Version: 1.0 from typing import Dict, List, Optional from datetime import datetime, timedelta, date +import statistics from db import get_db, get_cursor, r2d from data_layer.utils import calculate_confidence, safe_float, safe_int diff --git a/backend/data_layer/body_metrics.py b/backend/data_layer/body_metrics.py index ec65ec2..4e6441e 100644 --- a/backend/data_layer/body_metrics.py +++ b/backend/data_layer/body_metrics.py @@ -620,9 +620,8 @@ def calculate_recomposition_quadrant(profile_id: str) -> Optional[str]: def calculate_body_progress_score(profile_id: str, focus_weights: Optional[Dict] = None) -> Optional[int]: """Calculate body progress score (0-100) weighted by user's focus areas""" if focus_weights is None: - from goal_utils import get_focus_weights - with get_db() as conn: - focus_weights = get_focus_weights(conn, profile_id) + from data_layer.scores import get_user_focus_weights + focus_weights = get_user_focus_weights(profile_id) weight_loss = focus_weights.get('weight_loss', 0) muscle_gain = focus_weights.get('muscle_gain', 0)