Example #1
0
def recipes_create():

    form = RecipeForm(request.form)
    form.recipe_id = -1
    # Checking that the form passes validations
    if not form.validate():
        return render_template("recipes/new.html", form=form)

    # Adding the new recipe
    name = form.name.data.strip()
    name = (name[0].upper() + name[1:])
    newRecipe = Recipe(name)
    newRecipe.instruction = form.instruction.data
    newRecipe.preptime = form.preptime.data
    newRecipe.account_id = current_user.id

    # Separating and adding tags
    tagsString = form.tags.data.strip()
    tags = tagsString.split(',')
    Tag.add_tags(tags, newRecipe)

    # Commiting changes
    db.session().add(newRecipe)
    db.session().commit()

    # Ingredients need recipe ID,
    # so they are added only after the recipe is added
    addedRecipe = Recipe.query.filter(Recipe.name == newRecipe.name).first()
    ingredients = form.ingredients.data.splitlines()
    Ingredient.add_ingredients(ingredients, addedRecipe)

    return redirect(url_for("recipes_index"))
Example #2
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/form.html",
                               form=form,
                               form_action=url_for("recipes_create"),
                               button_text="Create recipe")

    recipe = Recipe(form.name.data.strip())
    recipe.servings = form.servings.data
    recipe.instructions = form.instructions.data
    recipe.account_id = current_user.id
    recipe.account_name = current_user.name

    ingredients = form.ingredients.data

    db.session().add(recipe)
    db.session().flush()

    new = create_ingredients(ingredients, recipe.id)

    db.session().commit()

    return redirect(url_for("recipes_view", recipe_id=recipe.id))
Example #3
0
def recipes_create():

    if request.method == "GET":
        form = NewRecipeForm()
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        form.ingredients.append_entry({})
        return render_template("recipes/new.html", form=form)

    form = NewRecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    recipe = Recipe(form.header.data, form.category.data,
                    form.description.data, form.directions.data)
    recipe.account_id = current_user.id

    db.session().add(recipe)
    db.session().flush()

    for ingredientForm in form.ingredients.data:

        if ingredientForm['ingredientName']:

            ingredient = Ingredient.query.filter_by(
                name=ingredientForm['ingredientName'].lower()).first()

            if not ingredient:
                ingredient = Ingredient(
                    ingredientForm['ingredientName'].lower())
                db.session().add(ingredient)
                db.session().flush()

            recipeIngredient = RecipeIngredient(
                ingredientForm['ingredientAmount'],
                ingredientForm['ingredientUnit'])
            recipeIngredient.recipe_id = recipe.id
            recipeIngredient.ingredient_id = ingredient.id

            db.session().add(recipeIngredient)

    db.session().commit()

    return redirect(url_for("recipes_index", user_id=recipe.account_id))
Example #4
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    recipe = Recipe(form.name.data)
    recipe.description = form.description.data
    recipe.content = form.content.data
    recipe.account_id = current_user.id

    db.session().add(recipe)
    db.session().commit()

    return redirect(url_for("recipes_index"))
Example #5
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    r = Recipe(form.name.data, form.text.data)
    r.difficult = form.difficult.data
    r.event = form.event.data
    r.account_id = current_user.id

    db.session().add(r)
    db.session().commit()

    return redirect(url_for("recipes_list"))
Example #6
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    r = Recipe(form.name.data)
    r.favourite = form.favourite.data
    r.account_id = current_user.id
    r.description = cleanstr(form.description.data)

    db.session().add(r)
    db.session().commit()

    return redirect(url_for("recipes_index"))
Example #7
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    name = form.name.data
    duration = form.duration.data
    instructions = form.instructions.data

    recipe = Recipe(name, duration, instructions)
    recipe.account_id = current_user.id
    recipe.tags = get_tags(form)

    db.session().add(recipe)
    db.session().commit()

    return redirect(url_for("recipes_index"))
Example #8
0
def recipes_create():
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    r = db.session.query(Recipe).filter(
        Recipe.name == form.name.data).one_or_none()

    if r is not None:
        flash("Recipe you are trying to add already exists", "warning")
    elif form.name.data.__len__() < 2:
        flash("Recipe name has to be longer than 1 character", "warning")
    else:
        flash("Recipe has been added", "success")
        t = Recipe(form.name.data)
        t.account_id = current_user.id
        db.session().add(t)

        ingredients_string = form.ingredientString.data

        ingredients = [x.strip() for x in ingredients_string.split(',')]

        for ingredient in ingredients:
            x = db.session.query(Ingredient).filter(
                Ingredient.name == ingredient).one_or_none()

            if not x:
                if ingredient.__len__() < 2:
                    flash("Ingredient name has to be longer than 1 character",
                          "warning")
                else:
                    x = Ingredient(ingredient)
                    x.account_id = current_user.id
                    db.session().add(x)

            t.recipeIngredients.append(x)

    try:
        db.session().commit()
    except Exception as e:
        print(str(e))

    return redirect(url_for("recipes_create"))
Example #9
0
def recipes_create():
    form = RecipeForm(request.form)
    form.ingredients.choices = [(ingredient.id, ingredient.name)
                                for ingredient in Ingredient.query.all()]

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    ingredients = [Ingredient.query.get(id) for id in form.ingredients.data]
    r = Recipe(form.name.data, form.text.data)
    r.difficult = form.difficult.data
    r.event = form.event.data
    r.account_id = current_user.id
    r.recipeingredients = ingredients

    db.session().add(r)
    db.session().commit()

    return redirect(url_for("recipes_list"))
Example #10
0
def recipes_create():
    if request.method == "GET":
        return render_template("recipes/new.html", form=RecipeForm())

    form = RecipeForm(request.form)
    if not form.validate():
        return render_template("/recipes/new.html", form=form)

    url = uploadImage(form.image.name)
    
    r = Recipe(form.name.data, form.instructions.data, url)
    r.account_id = current_user.id

    db.session().add(r)
    db.session().flush()
    recipeId = r.id

    db.session().commit()
    
    return redirect(url_for("recipes_ingredients", recipeId=recipeId))
Example #11
0
def recipe_create():
    form = RecipeForm(request.form)
    if not form.validate():
        return render_template("recipes/newrecipe.html", form=form)

    newrecipe = Recipe(form.name.data, form.ingredients.data,
                       form.recipetext.data, form.tips.data)

    newrecipe.account_id = current_user.id

    db.session().add(newrecipe)
    db.session.commit()

    for category in form.categories.data:
        newrecipecategory = RecipeCategory(newrecipe.id, category.id)
        db.session.add(newrecipecategory)

    db.session.commit()

    return redirect(url_for("recipes_index"))
Example #12
0
def recipes_create():

    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/new.html", form=form)

    r = Recipe(form.name.data, form.timeNeeded.data, form.instructions.data)
    r.account_id = current_user.id

    db.session().add(r)
    db.session().flush()

    if form.ingredient_1.data and form.quantity_1.data:
        ing = form.ingredient_1.data
        recipeing = RecipeIngredient(form.quantity_1.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_2.data and form.quantity_2.data:
        ing = form.ingredient_2.data
        recipeing = RecipeIngredient(form.quantity_2.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_3.data and form.quantity_3.data:
        ing = form.ingredient_3.data
        recipeing = RecipeIngredient(form.quantity_3.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_4.data and form.quantity_4.data:
        ing = form.ingredient_4.data
        recipeing = RecipeIngredient(form.quantity_4.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_5.data and form.quantity_5.data:
        ing = form.ingredient_5.data
        recipeing = RecipeIngredient(form.quantity_5.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_6.data and form.quantity_6.data:
        ing = form.ingredient_6.data
        recipeing = RecipeIngredient(form.quantity_6.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_7.data and form.quantity_7.data:
        ing = form.ingredient_7.data
        recipeing = RecipeIngredient(form.quantity_7.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_8.data and form.quantity_8.data:
        ing = form.ingredient_8.data
        recipeing = RecipeIngredient(form.quantity_8.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_9.data and form.quantity_9.data:
        ing = form.ingredient_9.data
        recipeing = RecipeIngredient(form.quantity_9.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    if form.ingredient_10.data and form.quantity_10.data:
        ing = form.ingredient_10.data
        recipeing = RecipeIngredient(form.quantity_10.data)

        recipeing.recipe_id = r.id
        recipeing.ingredient_id = ing.get_id()
        db.session().add(recipeing)

    db.session().commit()

    return redirect(url_for("recipes_index"))
Example #13
0
def recipes_update():

    form = UpdateForm(request.form)

    if not form.validate():
        return render_template("recipes/update.html", form=form)

    r = Recipe(form.name.data, form.timeNeeded.data, form.instructions.data)
    r.account_id = current_user.id
    r.id = form.id.data

    # call database objects
    recipe = Recipe.query.filter_by(id=form.id.data).first()
    recipe_ingredients = RecipeIngredient.query.filter_by(
        recipe_id=recipe.id).all()
    query_ingredients = Ingredient.query.join(RecipeIngredient).join(
        Recipe).filter(
            (RecipeIngredient.recipe_id == recipe.id)
            and (RecipeIngredient.ingredient_id == Ingredient.id)).all()

    # update recipe information
    recipe.id = form.id.data
    recipe.name = form.name.data
    recipe.timeNeeded = form.timeNeeded.data
    recipe.instructions = form.instructions.data

    if form.ingredient_1.data and form.quantity_1.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                0].ingredient_id = form.ingredient_1.data.get_id()
            recipe_ingredients[0].amount = form.quantity_1.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_1.data
            recipeing = RecipeIngredient(form.quantity_1.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_2.data and form.quantity_2.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                1].ingredient_id = form.ingredient_2.data.get_id()
            recipe_ingredients[1].amount = form.quantity_2.data
        except:
            if not form.ingredient_2.data and len(recipe_ingredients) >= 2:
                RecipeIngredient.query.filter_by(
                    id=recipe_ingredients[1].id).delete()
            else:
                # if the user is adding new ingredients and quantities, this takes care of it
                ing = form.ingredient_2.data
                recipeing = RecipeIngredient(form.quantity_2.data)

                recipeing.recipe_id = recipe.id
                recipeing.ingredient_id = ing.get_id()
                db.session().add(recipeing)

    if form.ingredient_3.data and form.quantity_3.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                2].ingredient_id = form.ingredient_3.data.get_id()
            recipe_ingredients[2].amount = form.quantity_3.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_3.data
            recipeing = RecipeIngredient(form.quantity_3.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_4.data and form.quantity_4.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                3].ingredient_id = form.ingredient_4.data.get_id()
            recipe_ingredients[3].amount = form.quantity_4.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_4.data
            recipeing = RecipeIngredient(form.quantity_4.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_5.data and form.quantity_5.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                4].ingredient_id = form.ingredient_5.data.get_id()
            recipe_ingredients[4].amount = form.quantity_5.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_5.data
            recipeing = RecipeIngredient(form.quantity_5.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_6.data and form.quantity_6.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                5].ingredient_id = form.ingredient_6.data.get_id()
            recipe_ingredients[5].amount = form.quantity_6.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_6.data
            recipeing = RecipeIngredient(form.quantity_6.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_7.data and form.quantity_7.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                6].ingredient_id = form.ingredient_7.data.get_id()
            recipe_ingredients[6].amount = form.quantity_7.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_7.data
            recipeing = RecipeIngredient(form.quantity_7.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_8.data and form.quantity_8.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                7].ingredient_id = form.ingredient_8.data.get_id()
            recipe_ingredients[7].amount = form.quantity_8.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_8.data
            recipeing = RecipeIngredient(form.quantity_8.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_9.data and form.quantity_9.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                8].ingredient_id = form.ingredient_9.data.get_id()
            recipe_ingredients[8].amount = form.quantity_9.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_9.data
            recipeing = RecipeIngredient(form.quantity_9.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    if form.ingredient_10.data and form.quantity_10.data:
        # update ingredient_id and amount for recipe_ingredient
        try:
            recipe_ingredients[
                9].ingredient_id = form.ingredient_10.data.get_id()
            recipe_ingredients[9].amount = form.quantity_10.data
        except:
            # if the user is adding new ingredients and quantities, this takes care of it
            ing = form.ingredient_10.data
            recipeing = RecipeIngredient(form.quantity_10.data)

            recipeing.recipe_id = recipe.id
            recipeing.ingredient_id = ing.get_id()
            db.session().add(recipeing)

    db.session().commit()

    return redirect(url_for("recipes_index"))