def add_recipe(): form = RecipeForm() if request.method == 'POST' and form.validate(): # Add recipe to database and create ingredient links recipe = Recipe(name=form.name.data, type=form.type.data, time=form.time.data, category=form.category.data, serves=form.serves.data, method=form.method.data) db.session.add(recipe) # Create links between recipe and all ingredients required for ingredient in session['ingredients']: find_ingredient = Ingredient.query.filter_by(name=ingredient[0]).first() ing_recipe_link = RI_Link(r_id=recipe.id, i_id=find_ingredient.id, quantity=ingredient[1], q_type=ingredient[2]) recipe.ingredients.append(ing_recipe_link) find_ingredient.recipes.append(ing_recipe_link) # Add calorie value for the recipe calories = 0 for ingredient in session['ingredients']: find_ing = Ingredient.query.filter_by(name=ingredient[0]).first() if ingredient[2] == 'g': calories += int(ingredient[1])*int(find_ing.calories_per_g) elif ingredient[2] == 'mL': calories += int(ingredient[1])*int(find_ing.calories_per_ml) elif ingredient[2] == 'tbs': calories += int(ingredient[1])*int(find_ing.calories_per_tbs) elif ingredient[2] == 'tsp': calories += int(ingredient[1])*int(find_ing.calories_per_tsp) elif ingredient[2] == 'each': calories += int(ingredient[1])*int(find_ing.calories_per_each) recipe.calories = int(calories/(int(recipe.serves))) db.session.commit() return redirect(url_for('index')) session['ingredients'] = [] session.modified = True form = RecipeForm() return render_template('add-recipe.html', title= 'Add Recipe', form = form)