fixing meal edit on teampltes page

This commit is contained in:
2025-10-02 09:06:06 -07:00
parent 78be9ec2f5
commit 0c8173921f
3 changed files with 158 additions and 16 deletions

View File

@@ -50,6 +50,10 @@ async def tracker_page(request: Request, person: str = "Sarah", date: str = None
TrackedMeal.tracked_day_id == tracked_day.id
).all()
# Filter out deleted tracked foods from each tracked meal
for tracked_meal in tracked_meals:
tracked_meal.tracked_foods = [tf for tf in tracked_meal.tracked_foods if not tf.is_deleted]
# Get all meals for dropdown
meals = db.query(Meal).all()
@@ -472,9 +476,6 @@ async def update_tracked_meal_foods(data: dict = Body(...), db: Session = Depend
tracked_meal_id = data.get("tracked_meal_id")
foods_data = data.get("foods", [])
removed_food_ids = data.get("removed_food_ids", [])
print(f"Received update for tracked_meal_id: {tracked_meal_id}")
print(f" Foods data: {foods_data}")
print(f" Removed food IDs: {removed_food_ids}")
tracked_meal = db.query(TrackedMeal).filter(TrackedMeal.id == tracked_meal_id).first()
if not tracked_meal:
@@ -482,18 +483,15 @@ async def update_tracked_meal_foods(data: dict = Body(...), db: Session = Depend
# Process removals: mark existing foods as deleted
for food_id_to_remove in removed_food_ids:
print(f" Processing removal for food_id: {food_id_to_remove}")
# Check if an override already exists
override = db.query(TrackedMealFood).filter(
TrackedMealFood.tracked_meal_id == tracked_meal_id,
TrackedMealFood.food_id == food_id_to_remove
).first()
if override:
print(f" Found existing override for food_id {food_id_to_remove}. Marking as deleted.")
override.is_deleted = True
else:
# If no override exists, create one to mark the food as deleted
print(f" No existing override for food_id {food_id_to_remove}. Creating new deleted override.")
new_override = TrackedMealFood(
tracked_meal_id=tracked_meal_id,
food_id=food_id_to_remove,
@@ -502,7 +500,6 @@ async def update_tracked_meal_foods(data: dict = Body(...), db: Session = Depend
is_deleted=True
)
db.add(new_override)
print(f" New override created: {new_override.is_deleted}")
# Process updates and additions
for food_data in foods_data:
@@ -717,6 +714,10 @@ async def detailed_tracked_day(request: Request, person: str = "Sarah", date: Op
TrackedMeal.tracked_day_id == tracked_day.id
).all()
# Filter out deleted tracked foods from each tracked meal
for tracked_meal in tracked_meals:
tracked_meal.tracked_foods = [tf for tf in tracked_meal.tracked_foods if not tf.is_deleted]
day_totals = calculate_day_nutrition_tracked(tracked_meals, db)
meal_details = []