示例#1
0
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"))
示例#2
0
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"))