def admin_drink_save(): cancel = request.form.get("cancel") if cancel: return redirect('/admin/drink') form = DrinkForm(request.form) if request.method == 'POST' and form.validate(): id = int(request.form.get("id") or '0') if id: drink = Drink.query.filter_by(id=int(id)).first() else: drink = Drink() db.session.add(drink) drink.name.name = form.data['drink_name'] drink.desc = form.data['desc'] drink.sugg_size = int(form.data['sugg_size'] * constant.ML_PER_FL_OZ); drink.popular = form.data['popular'] drink.available = form.data['available'] for i in xrange(MAX_BOOZES_PER_DRINK): try: parts = request.form['booze_parts_%d' % i] parts = int(parts) except KeyError: parts = -1 try: dbi = int(request.form['drink_booze_id_%d' % i] or "-1") dbi = int(dbi) except KeyError: dbi = -1 try: dbn = int(request.form['booze_name_%d' % i] or "-1") dbn = int(dbn) except KeyError: dbn = -1 if parts == 0: if dbi != 0: for i, dbooze in enumerate(drink.drink_boozes): if dbooze.id == dbi: db.session.delete(drink.drink_boozes[i]) break continue if dbi > 0: for dbooze in drink.drink_boozes: if dbi == dbooze.id: dbooze.value = parts newid = dbn if (newid != dbooze.booze_id): dbooze.booze = Booze.query.filter_by(id=newid).first() break else: booze = Booze.query.filter_by(id=dbn).first() DrinkBooze(drink, booze, parts, 0) db.session.commit() mc = app.mc mc.delete("top_drinks") mc.delete("other_drinks") mc.delete("available_drink_list") return redirect('/admin/drink/edit/%d?saved=1' % drink.id) drinks = db.session.query(Drink).join(DrinkName).filter(Drink.name_id == DrinkName.id) \ .order_by(DrinkName.name).all() return render_template("admin/drink", drinks=drinks, form=form, title="")
def admin_drink_save(): cancel = request.form.get("cancel") if cancel: return redirect('/admin/drink') form = DrinkForm(request.form) if request.method == 'POST' and form.validate(): id = int(request.form.get("id") or '0') if id: drink = Drink.query.filter_by(id=int(id)).first() else: drink = Drink() db.session.add(drink) drink.name.name = form.data['drink_name'] drink.desc = form.data['desc'] drink.sugg_size = int(form.data['sugg_size'] * constant.ML_PER_FL_OZ) drink.popular = form.data['popular'] drink.available = form.data['available'] for i in xrange(MAX_BOOZES_PER_DRINK): try: parts = request.form['booze_parts_%d' % i] parts = int(parts) except KeyError: parts = -1 try: dbi = int(request.form['drink_booze_id_%d' % i] or "-1") dbi = int(dbi) except KeyError: dbi = -1 try: dbn = int(request.form['booze_name_%d' % i] or "-1") dbn = int(dbn) except KeyError: dbn = -1 if parts == 0: if dbi != 0: for i, dbooze in enumerate(drink.drink_boozes): if dbooze.id == dbi: db.session.delete(drink.drink_boozes[i]) break continue if dbi > 0: for dbooze in drink.drink_boozes: if dbi == dbooze.id: dbooze.value = parts newid = dbn if (newid != dbooze.booze_id): dbooze.booze = Booze.query.filter_by( id=newid).first() break else: booze = Booze.query.filter_by(id=dbn).first() DrinkBooze(drink, booze, parts, 0) db.session.commit() mc = app.mc mc.delete("top_drinks") mc.delete("other_drinks") mc.delete("available_drink_list") return redirect('/admin/drink/edit/%d?saved=1' % drink.id) drinks = db.session.query(Drink).join(DrinkName).filter(Drink.name_id == DrinkName.id) \ .order_by(DrinkName.name).all() return render_template("admin/drink", drinks=drinks, form=form, title="")