Пример #1
0
def add_recipe():
    form = RecipeForm()
    quantities = MeasurementQty.query.all()
    units = MeasurementUnit.query.order_by(MeasurementUnit.factor).all()
    ingredients = Ingredient.query.order_by(Ingredient.name).all()
    if form.validate_on_submit():
        # Could choose to set default author to logged in user if none is supplied
        recipe = Recipe(name=form.recipe.data,
                        description=form.description.data,
                        author=current_user,
                        servings=form.servings.data,
                        comments=form.comments.data,
                        source=form.source.data)
        # Tags
        # No implemented yet
        # Ingredients
        db.session.add(recipe)
        if form.ingredient.validate(form):
            for ingredient in form.ingredient.data:
                query = IngredientSet.add_set(
                    quantity=ingredient['quantity'],
                    unit=ingredient['unit'],
                    ingredient=ingredient['ingredient'])
                if query is not None:
                    recipe.add_ingredient(query)
                else:
                    print('Set does not exist placeholder')
        # Steps
        if form.ingredient.validate(form):
            for step in form.step.data:
                step = RecipeStep(step_number=step['step_number'],
                                  step_text=step['step'])
                recipe.steps.append(step)
        db.session.commit()
        flash('Recipe added')
        return redirect(url_for('index'))
    return render_template('add_recipe.html',
                           title='Add recipe',
                           form=form,
                           quantities=quantities,
                           units=units,
                           ingredients=ingredients)
Пример #2
0
def db_fill():
    # from flask_security import create_user, create_role
    from app import security
    from app.models import Ingredient, Recipe

    roles = [
        security.datastore.create_role(
            name="admin",
            permissions=
            "manage-application,manage-users,login-as,see-debug,see-other,edit-other",
        ),
        security.datastore.create_role(
            name="application_manager",
            permissions="manage-application,see-other,edit-other",
        ),
    ]

    for role in roles:
        role.save()

    users = [
        security.datastore.create_user(username="******",
                                       email="*****@*****.**",
                                       password="******"),
        security.datastore.create_user(
            username="******",
            email="*****@*****.**",
            roles=["application_manager"],
            password="******",
        ),
        security.datastore.create_user(username="******",
                                       email="*****@*****.**",
                                       roles=["admin"],
                                       password="******"),
    ]

    for user in users:
        user.save()

    ingredients = [
        Ingredient(name="první surovina", created_by=users[0].id),
        Ingredient(name="druhá surovina", created_by=users[0].id),
        Ingredient(name="třetí surovina", created_by=users[0].id),
    ]

    for ingredient in ingredients:
        ingredient.save()

    recipe = Recipe(name="první recept",
                    created_by=users[0].id,
                    portion_count=1,
                    is_shared=False)
    recipe.add_ingredient(ingredients[0], amount=20)
    recipe.add_ingredient(ingredients[2], amount=10)
    recipe.save()

    recipe_2 = Recipe(name="veřejný recept",
                      created_by=users[0].id,
                      portion_count=1,
                      is_shared=True)
    recipe_2.add_ingredient(ingredients[0], amount=20)
    recipe_2.add_ingredient(ingredients[2], amount=10)
    recipe_2.save()