def home(): """Return URL for home.html""" categories = [(c.id, c.name) for c in Tag.query.all()] recipeForm = AddRecipe() recipeForm.tags.choices = categories tagForm = AddTag() tagListForm = TagList() tagListForm.tags.choices = categories recipes = Recipe.query.all() if tagListForm.validate_on_submit(): if tagListForm.search.data: tags_id = tagListForm.tags.data recipes = [] for tag_id in tags_id: match = db.session.query(Recipe).filter( Recipe.tags.any(id=tag_id)).all() recipes += match if tagListForm.delete.data: tags_id = tagListForm.tags.data for tag_id in tags_id: Tag.query.filter_by(id=tag_id).delete() db.session.commit() return redirect(url_for('home')) if recipeForm.validate_on_submit(): recipe = Recipe() recipe.add_recipe(recipeForm.data) #add_new_recipe(recipeForm) return redirect(url_for('home')) if tagForm.validate_on_submit(): add_tag(tagForm.name.data) return redirect(url_for('home')) return render_template('home.html', title='Home', tagListForm=tagListForm, recipes=recipes, recipeForm=recipeForm, tagForm=tagForm)
def add_recipe(): ''' On a POST request with /add_recipe will add a new recipe for post, please supply 'name', 'instruction', 'mealType' and 'ingredients' ''' name = request.json.get('name') instruction = request.json.get('instruction') mealType = request.json.get('mealType') ingredients = request.json.get('ingredients') user_id = g.user.id recipe = Recipe.add_recipe(name, instruction, mealType, ingredients, user_id) return { 'recipe_id': recipe.id, 'message': 'Recipe has been added', 'statusCode': 201, 'status': 'success' }