updated the tracker to have more features

This commit is contained in:
2025-09-30 12:13:05 -07:00
parent 10d3897850
commit 4f41b5d69e
9 changed files with 60 additions and 41 deletions

View File

@@ -285,8 +285,7 @@ async def use_template(template_id: int, request: Request, db: Session = Depends
tracked_meal = TrackedMeal(
tracked_day_id=tracked_day.id,
meal_id=template_meal.meal_id,
meal_time=template_meal.meal_time,
quantity=1.0 # Default quantity when applying template
meal_time=template_meal.meal_time
)
db.add(tracked_meal)

View File

@@ -87,9 +87,8 @@ async def tracker_add_meal(request: Request, db: Session = Depends(get_db)):
date_str = form_data.get("date")
meal_id = form_data.get("meal_id")
meal_time = form_data.get("meal_time")
quantity = 1.0 # Default quantity to 1.0 as the field is removed from the UI
logging.info(f"DEBUG: Adding meal to tracker - person={person}, date={date_str}, meal_id={meal_id}, meal_time={meal_time}, quantity={quantity}")
logging.info(f"DEBUG: Adding meal to tracker - person={person}, date={date_str}, meal_id={meal_id}, meal_time={meal_time}")
# Parse date
from datetime import datetime
@@ -111,8 +110,7 @@ async def tracker_add_meal(request: Request, db: Session = Depends(get_db)):
tracked_meal = TrackedMeal(
tracked_day_id=tracked_day.id,
meal_id=int(meal_id),
meal_time=meal_time,
quantity=quantity
meal_time=meal_time
)
db.add(tracked_meal)
@@ -259,8 +257,7 @@ async def tracker_apply_template(request: Request, db: Session = Depends(get_db)
tracked_meal = TrackedMeal(
tracked_day_id=tracked_day.id,
meal_id=template_meal.meal_id,
meal_time=template_meal.meal_time,
quantity=1.0
meal_time=template_meal.meal_time
)
db.add(tracked_meal)
@@ -540,7 +537,6 @@ async def save_as_new_meal(data: dict = Body(...), db: Session = Depends(get_db)
# Update the original tracked meal to point to the new meal
tracked_meal.meal_id = new_meal.id
tracked_meal.quantity = 1.0 # Reset quantity to 1.0 as the new meal contains the correct quantities
# Clear custom tracked foods from the original tracked meal
for tf in tracked_meal.tracked_foods:
@@ -611,8 +607,7 @@ async def tracker_add_food(data: dict = Body(...), db: Session = Depends(get_db)
tracked_meal = TrackedMeal(
tracked_day_id=tracked_day.id,
meal_id=new_meal.id,
meal_time=meal_time,
quantity=1.0 # Quantity for single food meals is always 1.0, actual food quantity is in MealFood
meal_time=meal_time
)
db.add(tracked_meal)

View File

@@ -134,7 +134,6 @@ class TrackedMeal(Base):
tracked_day_id = Column(Integer, ForeignKey("tracked_days.id"))
meal_id = Column(Integer, ForeignKey("meals.id"))
meal_time = Column(String) # Breakfast, Lunch, Dinner, Snack 1, Snack 2, Beverage 1, Beverage 2
quantity = Column(Float, default=1.0) # Quantity multiplier (e.g., 1.5 for 1.5 servings)
tracked_day = relationship("TrackedDay", back_populates="tracked_meals")
meal = relationship("Meal")
@@ -201,7 +200,6 @@ class TrackedDayCreate(BaseModel):
class TrackedMealCreate(BaseModel):
meal_id: int
meal_time: str
quantity: float = 1.0
class FoodExport(FoodResponse):
pass
@@ -283,7 +281,6 @@ class TrackedMealFoodExport(BaseModel):
class TrackedMealExport(BaseModel):
meal_id: int
meal_time: str
quantity: float
tracked_foods: List[TrackedMealFoodExport] = []
class TrackedDayExport(BaseModel):
@@ -382,12 +379,11 @@ def calculate_tracked_meal_nutrition(tracked_meal, db: Session):
'fiber': 0, 'sugar': 0, 'sodium': 0, 'calcium': 0
}
# Base meal nutrition scaled by quantity
# Base meal nutrition
base_nutrition = calculate_meal_nutrition(tracked_meal.meal, db)
quantity = tracked_meal.quantity
for key in totals:
if key in base_nutrition:
totals[key] += base_nutrition[key] * quantity
totals[key] += base_nutrition[key]
# Add custom tracked foods
for tracked_food in tracked_meal.tracked_foods: