예제 #1
0
파일: views.py 프로젝트: ilarijn/recipebase
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))
예제 #2
0
def recipe_create():

    form = RecipeForm(request.form)
    ingredients = Ingredient.query.all()
    form.ingredients.choices = [(ingredient.ingredientid, ingredient.name)
                                for ingredient in ingredients]

    r = Recipe(form.name.data, form.method.data, current_user.id)

    ingredient_ids = form.ingredients.data

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

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

    db.session.refresh(r)

    for id in ingredient_ids:
        i = Ingredient.query.get(id)
        r.recipeingredient.append(i)
        db.session().commit()

    return redirect(url_for("recipe_index"))
예제 #3
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"))
예제 #4
0
파일: views.py 프로젝트: ilarijn/recipebase
def recipes_save(recipe_id):
    form = RecipeForm(request.form)

    if not form.validate():
        return render_template("recipes/form.html",
                               form=form,
                               form_action=url_for(
                                   "recipes_save", recipe_id=recipe_id),
                               button_text="Save changes")

    recipe = Recipe.query.get(recipe_id)
    recipe.name = form.name.data.strip()
    recipe.servings = form.servings.data
    recipe.instructions = form.instructions.data

    ingredients = form.ingredients

    id_list = {
        ri_form.ingredient_id.data: ri_form.amount.data for ri_form in ingredients}
    ri_list = RecipeIngredient.query.filter_by(recipe_id=recipe_id).all()

    for ingredient in ri_list:
        if str(ingredient.ingredient_id) not in id_list:
            db.session.delete(ingredient)
        else:
            ingredient.amount = id_list.pop(str(ingredient.ingredient_id))

    create_ingredients(
        [item for item in form.ingredients.data if item['ingredient_id'] in id_list], recipe.id)

    db.session.commit()
    return redirect(url_for("recipes_view", recipe_id=recipe.id))
예제 #5
0
def recipe_update(recipe_id):
    rToUpdate = Recipe.query.get(recipe_id)

    if rToUpdate.account_id != current_user.id:
        return login_manager.unauthorized()

    form = RecipeForm(request.form)
    form.name.data = rToUpdate.name
    form.ingredients.data = rToUpdate.ingredients
    form.recipetext.data = rToUpdate.recipe_text
    form.tips.data = rToUpdate.tips

    if request.method == "GET":
        return render_template("recipes/editrecipe.html",
                               form=form,
                               recipe=rToUpdate)

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

    form = RecipeForm(request.form)
    rToUpdate.name = form.name.data
    rToUpdate.ingredients = form.ingredients.data
    rToUpdate.recipe_text = form.recipetext.data
    rToUpdate.tips = form.tips.data

    db.session().add(rToUpdate)
    db.session().commit()

    return redirect(url_for("recipes_index"))
예제 #6
0
def recipe_edit(recipeid):
    try:
        recipe = Recipe.query.filter_by(id=recipeid).first()
        RecipeIngredient.query.filter_by(recipe_id=recipeid).delete()
    except:
        flash("Could not connect to database")
        return redirect(url_for("error_page", message="Error connecting to database"))

    form = RecipeForm().new()
    if request.method == "GET":
        form.name.data = recipe.name
        form.instruction.data = recipe.instruction
        return render_template("recipes/edit.html", recipeid=recipeid, form=form)

    if request.method == "POST" and form.validate():
        recipe.name = form.name.data
        recipe.instruction = form.instruction.data
        for data in form.ingredients.data:
            ingredient = Ingredient.query.filter_by(name=data).first()
            recipe.ingredient.append(ingredient)
        try:
            db.session().commit()
        except:
            flash("Problems connecting to database")
            return redirect(url_for("error_page", message="Error connecting to database"))
        return redirect(url_for("recipes_index"))

    return render_template("recipes/edit.html", recipeid=recipeid, form=form)
예제 #7
0
def recipe_update(recipe_id):

    r = Recipe.query.get(recipe_id)
    form = RecipeForm(request.form)

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

    r.name = form.name.data
    r.description = form.description.data
    db.session().commit()

    return redirect(url_for("recipes_index"))
예제 #8
0
def recipe_create():

    form = RecipeForm(request.form)
    r = Recipe(form.name.data, form.description.data)
    r.creator = current_user.id

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

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

    return redirect(url_for("recipes_index"))
예제 #9
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"))
예제 #10
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"))
예제 #11
0
파일: views.py 프로젝트: nicohi/recipedb
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"))
예제 #12
0
def recipes_update(recipe_id):
    recipe = Recipe.query.get(recipe_id)

    if recipe.account_id != current_user.id:
        return login_manager.unauthorized()

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

    recipe.name = form.name.data
    recipe.description = form.description.data
    recipe.content = form.content.data
    db.session.commit()

    return redirect(url_for("recipes_index"))
예제 #13
0
파일: views.py 프로젝트: nicohi/recipedb
def recipes_edit(recipe_id):
    form = RecipeForm(request.form)
    r = Recipe.query.get(recipe_id)

    if not form.validate():
        return redirect(url_for("recipes_view", recipe_id=recipe_id,
                                form=form))

    r.name = form.name.data
    r.favourite = form.favourite.data
    r.description = cleanstr(form.description.data)
    r.text = cleanstr(form.text.data)

    db.session().commit()

    return redirect(url_for("recipes_view", recipe_id=recipe_id))
예제 #14
0
def recipes_create():
    form = RecipeForm(request.form)

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

    nimi = form.nimi.data
    annoksia = form.annoksia.data
    aika = form.aika.data
    ohje = form.ohje.data

    r = Recipe(nimi, annoksia, aika, ohje)

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

    return redirect(url_for("recipes_index"))
예제 #15
0
파일: views.py 프로젝트: Darake/ruokaholvi
def recipes_save_edit(recipeId):
    form = RecipeForm(request.form)
    
    if not form.validate():
        return render_template("/recipes/edit.html",
                                form=form,
                                recipeId=recipeId)

    recipe = Recipe.query.get(recipeId)
    
    recipe.image = uploadImage(form.image.name) or recipe.image
    recipe.name = form.name.data
    recipe.instructions = form.instructions.data
    
    db.session.commit()

    return redirect(url_for("recipes_ingredients", recipeId=recipeId))
예제 #16
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"))
예제 #17
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"))
예제 #18
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"))
예제 #19
0
파일: views.py 프로젝트: Darake/ruokaholvi
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))
예제 #20
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"))
예제 #21
0
def recipes_create():
    form = RecipeForm().new()
    if request.method == "GET":
        return render_template("recipes/new.html", form=form)

    if request.method == "POST" and form.validate():
        try:
            r = Recipe(form.name.data, form.instruction.data)
            r.account.append(current_user)

            for data in form.ingredients.data:
                ingredient = Ingredient.query.filter_by(name=data).first()
                r.ingredient.append(ingredient)
            db.session().add(r)
            db.session().commit()
            return redirect(url_for("recipes_index"))
        except:
            flash("could not connect to database")
            return redirect(url_for("error_page", message="Error connecting to database"))

    return render_template("recipes/new.html", form=form)
예제 #22
0
def recipe_edit(recipe_id):
    form = RecipeForm(request.form)

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

    recipe = Recipe.query.get(recipe_id)

    if recipe.account_id != current_user.id:
        abort(403)

    recipe.name = form.name.data
    recipe.duration = form.duration.data
    recipe.instructions = form.instructions.data
    recipe.tags = get_tags(form)

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

    return redirect(url_for("recipe_view", recipe_id=recipe.id))
예제 #23
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"))