diff --git a/backend/main.py b/backend/main.py index 4c09098..1417b6d 100644 --- a/backend/main.py +++ b/backend/main.py @@ -790,7 +790,7 @@ def _prepare_template_vars(data: dict) -> dict: # Weight trend summary if len(weight) >= 2: recent = weight[:30] - delta = recent[0]['weight'] - recent[-1]['weight'] + delta = float(recent[0]['weight']) - float(recent[-1]['weight']) vars['weight_trend'] = f"{len(recent)} Einträge, Δ30d: {delta:+.1f}kg" else: vars['weight_trend'] = "zu wenig Daten" @@ -815,15 +815,15 @@ def _prepare_template_vars(data: dict) -> dict: # Nutrition summary if nutrition: n = len(nutrition) - avg_kcal = sum(d.get('kcal',0) for d in nutrition) / n - avg_prot = sum(d.get('protein_g',0) for d in nutrition) / n + avg_kcal = sum(float(d.get('kcal',0) or 0) for d in nutrition) / n + avg_prot = sum(float(d.get('protein_g',0) or 0) for d in nutrition) / n vars['nutrition_summary'] = f"{n} Tage, Ø {avg_kcal:.0f}kcal, {avg_prot:.0f}g Protein" vars['nutrition_detail'] = vars['nutrition_summary'] vars['nutrition_days'] = n vars['kcal_avg'] = round(avg_kcal) vars['protein_avg'] = round(avg_prot,1) - vars['fat_avg'] = round(sum(d.get('fat_g',0) for d in nutrition) / n,1) - vars['carb_avg'] = round(sum(d.get('carbs_g',0) for d in nutrition) / n,1) + vars['fat_avg'] = round(sum(float(d.get('fat_g',0) or 0) for d in nutrition) / n,1) + vars['carb_avg'] = round(sum(float(d.get('carbs_g',0) or 0) for d in nutrition) / n,1) else: vars['nutrition_summary'] = "keine Daten" vars['nutrition_detail'] = "keine Daten" @@ -835,13 +835,14 @@ def _prepare_template_vars(data: dict) -> dict: # Protein targets w = weight[0]['weight'] if weight else prof.get('height',178) - 100 + w = float(w) # Convert Decimal to float for math operations vars['protein_ziel_low'] = round(w * 1.6) vars['protein_ziel_high'] = round(w * 2.2) # Activity summary if activity: n = len(activity) - total_kcal = sum(a.get('kcal_active',0) for a in activity) + total_kcal = sum(float(a.get('kcal_active',0) or 0) for a in activity) vars['activity_summary'] = f"{n} Trainings, {total_kcal:.0f}kcal gesamt" vars['activity_detail'] = vars['activity_summary'] vars['activity_kcal_summary'] = f"Ø {total_kcal/n:.0f}kcal/Training"