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)
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()