This commit is contained in:
2025-10-01 16:12:44 -07:00
parent bb30f9eb2b
commit 7cbc2d83bb
5 changed files with 206 additions and 33 deletions

View File

@@ -14,10 +14,23 @@ router = APIRouter()
# Meals tab
@router.get("/meals", response_class=HTMLResponse)
async def meals_page(request: Request, db: Session = Depends(get_db)):
meals = db.query(Meal).all()
foods = db.query(Food).all()
return templates.TemplateResponse("meals.html",
{"request": request, "meals": meals, "foods": foods})
try:
from sqlalchemy.orm import joinedload
logging.info("DEBUG: Starting meals query with eager loading")
meals = db.query(Meal).options(joinedload(Meal.meal_foods).joinedload(MealFood.food)).all()
logging.info(f"DEBUG: Retrieved {len(meals)} meals")
foods = db.query(Food).all()
logging.info(f"DEBUG: Retrieved {len(foods)} foods")
# Test template rendering with a simple test
logging.info("DEBUG: Testing template rendering...")
test_data = {"request": request, "meals": meals, "foods": foods}
return templates.TemplateResponse("meals.html", test_data)
except Exception as e:
logging.error(f"DEBUG: Error in meals_page: {str(e)}", exc_info=True)
# Return a simple error response for debugging
return HTMLResponse(f"<h1>Error in meals page</h1><pre>{str(e)}</pre><pre>{type(e).__name__}</pre>")
@router.post("/meals/upload")
async def bulk_upload_meals(file: UploadFile = File(...), db: Session = Depends(get_db)):

View File

@@ -228,10 +228,10 @@ async def detailed(request: Request, person: str = "Sarah", plan_date: str = Non
'num_servings': num_servings,
'serving_size': mf.food.serving_size,
'serving_unit': mf.food.serving_unit,
'calories': mf.food.calories * num_servings,
'protein': mf.food.protein * num_servings,
'carbs': mf.food.carbs * num_servings,
'fat': mf.food.fat * num_servings,
'calories': (mf.food.calories or 0) * num_servings,
'protein': (mf.food.protein or 0) * num_servings,
'carbs': (mf.food.carbs or 0) * num_servings,
'fat': (mf.food.fat or 0) * num_servings,
'fiber': (mf.food.fiber or 0) * num_servings,
'sodium': (mf.food.sodium or 0) * num_servings,
})
@@ -317,10 +317,10 @@ async def detailed(request: Request, person: str = "Sarah", plan_date: str = Non
'num_servings': num_servings,
'serving_size': mf.food.serving_size,
'serving_unit': mf.food.serving_unit,
'calories': mf.food.calories * num_servings,
'protein': mf.food.protein * num_servings,
'carbs': mf.food.carbs * num_servings,
'fat': mf.food.fat * num_servings,
'calories': (mf.food.calories or 0) * num_servings,
'protein': (mf.food.protein or 0) * num_servings,
'carbs': (mf.food.carbs or 0) * num_servings,
'fat': (mf.food.fat or 0) * num_servings,
'fiber': (mf.food.fiber or 0) * num_servings,
'sodium': (mf.food.sodium or 0) * num_servings,
})
@@ -339,10 +339,10 @@ async def detailed(request: Request, person: str = "Sarah", plan_date: str = Non
'num_servings': num_servings,
'serving_size': tracked_food.food.serving_size,
'serving_unit': tracked_food.food.serving_unit,
'calories': tracked_food.food.calories * num_servings,
'protein': tracked_food.food.protein * num_servings,
'carbs': tracked_food.food.carbs * num_servings,
'fat': tracked_food.food.fat * num_servings,
'calories': (tracked_food.food.calories or 0) * num_servings,
'protein': (tracked_food.food.protein or 0) * num_servings,
'carbs': (tracked_food.food.carbs or 0) * num_servings,
'fat': (tracked_food.food.fat or 0) * num_servings,
'fiber': (tracked_food.food.fiber or 0) * num_servings,
'sodium': (tracked_food.food.sodium or 0) * num_servings,
})
@@ -403,10 +403,10 @@ async def detailed(request: Request, person: str = "Sarah", plan_date: str = Non
'num_servings': num_servings,
'serving_size': mf.food.serving_size,
'serving_unit': mf.food.serving_unit,
'calories': mf.food.calories * num_servings,
'protein': mf.food.protein * num_servings,
'carbs': mf.food.carbs * num_servings,
'fat': mf.food.fat * num_servings,
'calories': (mf.food.calories or 0) * num_servings,
'protein': (mf.food.protein or 0) * num_servings,
'carbs': (mf.food.carbs or 0) * num_servings,
'fat': (mf.food.fat or 0) * num_servings,
'fiber': (mf.food.fiber or 0) * num_servings,
'sodium': (mf.food.sodium or 0) * num_servings,
})