Version 9b #1

Merged
Lars merged 34 commits from develop into main 2026-03-19 08:04:02 +01:00
Showing only changes of commit f7f7f745b1 - Show all commits

View File

@ -790,7 +790,7 @@ def _prepare_template_vars(data: dict) -> dict:
# Weight trend summary # Weight trend summary
if len(weight) >= 2: if len(weight) >= 2:
recent = weight[:30] 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" vars['weight_trend'] = f"{len(recent)} Einträge, Δ30d: {delta:+.1f}kg"
else: else:
vars['weight_trend'] = "zu wenig Daten" vars['weight_trend'] = "zu wenig Daten"
@ -815,15 +815,15 @@ def _prepare_template_vars(data: dict) -> dict:
# Nutrition summary # Nutrition summary
if nutrition: if nutrition:
n = len(nutrition) n = len(nutrition)
avg_kcal = sum(d.get('kcal',0) for d in nutrition) / n avg_kcal = sum(float(d.get('kcal',0) or 0) for d in nutrition) / n
avg_prot = sum(d.get('protein_g',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_summary'] = f"{n} Tage, Ø {avg_kcal:.0f}kcal, {avg_prot:.0f}g Protein"
vars['nutrition_detail'] = vars['nutrition_summary'] vars['nutrition_detail'] = vars['nutrition_summary']
vars['nutrition_days'] = n vars['nutrition_days'] = n
vars['kcal_avg'] = round(avg_kcal) vars['kcal_avg'] = round(avg_kcal)
vars['protein_avg'] = round(avg_prot,1) vars['protein_avg'] = round(avg_prot,1)
vars['fat_avg'] = round(sum(d.get('fat_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(d.get('carbs_g',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: else:
vars['nutrition_summary'] = "keine Daten" vars['nutrition_summary'] = "keine Daten"
vars['nutrition_detail'] = "keine Daten" vars['nutrition_detail'] = "keine Daten"
@ -835,13 +835,14 @@ def _prepare_template_vars(data: dict) -> dict:
# Protein targets # Protein targets
w = weight[0]['weight'] if weight else prof.get('height',178) - 100 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_low'] = round(w * 1.6)
vars['protein_ziel_high'] = round(w * 2.2) vars['protein_ziel_high'] = round(w * 2.2)
# Activity summary # Activity summary
if activity: if activity:
n = len(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_summary'] = f"{n} Trainings, {total_kcal:.0f}kcal gesamt"
vars['activity_detail'] = vars['activity_summary'] vars['activity_detail'] = vars['activity_summary']
vars['activity_kcal_summary'] = f"Ø {total_kcal/n:.0f}kcal/Training" vars['activity_kcal_summary'] = f"Ø {total_kcal/n:.0f}kcal/Training"