mirror of
https://github.com/sstent/foodplanner.git
synced 2026-01-25 11:11:36 +00:00
updated the tracker to have more features
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user