diff --git a/backend/app/api/shopping_list.py b/backend/app/api/shopping_list.py index 5856267..d1dc56d 100644 --- a/backend/app/api/shopping_list.py +++ b/backend/app/api/shopping_list.py @@ -71,14 +71,23 @@ def get_shopping_list(db: Session = Depends(get_db)): aggregated = defaultdict(lambda: {"quantity": 0.0, "unit": None, "name": ""}) + # Build ingredient name lookup from IDs + ingredient_names = {} + if all_ingredient_ids: + ingredient_names = {str(i.id): i.name for i in ingredients} + for plan_item in current_plan.items: recipe = db.query(Recipe).filter(Recipe.id == plan_item.recipe_id).first() if recipe and recipe.ingredients: for ing in recipe.ingredients: - name = ing.get('name', 'Unknown') + ing_id = ing.get('ingredient_id') + name = ing.get('name') + if not name and ing_id: + name = ingredient_names.get(str(ing_id)) + if not name: + name = 'Unknown' quantity = ing.get('quantity', 1.0) or 1.0 unit = ing.get('unit') - ing_id = ing.get('ingredient_id') key = name.lower() aggregated[key]["quantity"] += quantity