def reseptit_create(): form = ReseptiForm(request.form) if not form.validate(): return render_template("reseptit/new.html", form=form) resepti = Resepti(form.name.data, form.ainesosat.data, form.tyovaiheet.data, form.tyypit.data) resepti.account_id = current_user.id if form.liharuoka.data: luokka = Luokka("Liharuoka") resepti.luokat.append(luokka) if form.kasvis.data: luokka = Luokka("Kasvis") resepti.luokat.append(luokka) if form.vegaani.data: luokka = Luokka("Vegaani") resepti.luokat.append(luokka) if form.maidoton.data: luokka = Attribute("Maidoton") resepti.luokat.append(luokka) db.session().add(resepti) db.session().commit() return redirect(url_for("reseptit_index"))
def reseptit_create(): form = NewReseptiForm(request.form) if not form.resepti.validate(form): print(form.resepti.errors) return render_template("reseptit/new.html", form=form) if not form.aineet.validate(form): print(form.aineet.errors.items()) print(form.aineet.errors['amount'][0]) return render_template("reseptit/new.html", form=form) #Add only those aine forms with info to list aineListWithoutEmpties = [] name = "" for key in form.aineet.data: if "name" in key: name = form.aineet.data[key] if "amount" in key and name: #lisää tänne if amount = none niin laittaa sinne vaikka nollan? aineListWithoutEmpties.append({name: form.aineet.data[key]}) r = Resepti(form.resepti.nimi.data, form.resepti.cooktime.data) r.account_id = current_user.id db.session.add(r) db.session().commit() #create and append non existing aineet, put info of existing ones in list alreadyInDb = [] for aineEl in aineListWithoutEmpties: name = list(aineEl.keys())[0] aines = Ainesosa.query.filter_by(name=name).first() if not aines: #name of current aineEl doesn't exist in db a = Ainesosa(name) r_a = Resepti_ainesosa(amount=aineEl[name]) r_a.ainesosa = a r.ainesosa.append(r_a) else: #name of ainesEl already exists in db -> save the queried object for id and amount from ainesform alreadyInDb.append({'ainesKey': aines, 'amount': aineEl[name]}) #db.session().add(r) newOhje = Ohje(form.resepti.ohje.data) newOhje.resepti_id = r.id db.session().add(newOhje) db.session().commit() #Add references to resepti_ainesosa table for prexisting ones for ainesEl in alreadyInDb: Resepti_ainesosa.add_ref_to_resepti_ainesosa(r.id, ainesEl['ainesKey'].id, ainesEl['amount']) return redirect(url_for("reseptit_index"))