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.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 ws_drink_save(drink): data = request.json['drink'] id = int(data["id"] or 0) if id > 0: drink = Drink.query.filter_by(id=int(id)).first() else: id = 0 drink = Drink() db.session.add(drink) try: drink.name.name = data['name'] drink.desc = data['desc'] if data['popular']: drink.popular = True else: drink.popular = False if data['available']: drink.available = True else: drink.available = False except ValueError: raise BadRequest for selected_booze_id, parts, old_booze_id in data['boozes']: try: selected_booze_id = int(selected_booze_id) # this is the id that comes from the most recent selection old_booze_id = int(old_booze_id) # this id is the id that was previously used by this slot. Used for # cleaning up or updateing existing entries parts = int(parts) except ValueError: raise BadRequest # if the parts are set to zero, remove this drink_booze from this drink if parts == 0: if old_booze_id != 0: for i, dbooze in enumerate(drink.drink_boozes): if dbooze.booze_id == old_booze_id: db.session.delete(drink.drink_boozes[i]) break continue # if there is an old_booze_id, then update the existing entry if old_booze_id > 0: for drink_booze in drink.drink_boozes: if old_booze_id == drink_booze.booze_id: drink_booze.value = parts if (selected_booze_id != drink_booze.booze_id): drink_booze.booze = Booze.query.filter_by(id=selected_booze_id).first() break else: # Create a new drink-booze entry booze = Booze.query.filter_by(id=selected_booze_id).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 drink_load(drink.id)
def ws_drink_save(drink): data = request.json["drink"] id = int(data["id"] or 0) if id > 0: drink = Drink.query.filter_by(id=int(id)).first() else: id = 0 drink = Drink() db.session.add(drink) try: drink.name.name = data["name"] drink.desc = data["desc"] if data["popular"]: drink.popular = True else: drink.popular = False if data["available"]: drink.available = True else: drink.available = False except ValueError: raise BadRequest for selected_booze_id, parts, old_booze_id in data["boozes"]: try: selected_booze_id = int(selected_booze_id) # this is the id that comes from the most recent selection old_booze_id = int(old_booze_id) # this id is the id that was previously used by this slot. Used for # cleaning up or updateing existing entries parts = int(parts) except ValueError: raise BadRequest # if the parts are set to zero, remove this drink_booze from this drink if parts == 0: if old_booze_id != 0: for i, dbooze in enumerate(drink.drink_boozes): if dbooze.booze_id == old_booze_id: db.session.delete(drink.drink_boozes[i]) break continue # if there is an old_booze_id, then update the existing entry if old_booze_id > 0: for drink_booze in drink.drink_boozes: if old_booze_id == drink_booze.booze_id: drink_booze.value = parts if selected_booze_id != drink_booze.booze_id: drink_booze.booze = Booze.query.filter_by(id=selected_booze_id).first() break else: # Create a new drink-booze entry booze = Booze.query.filter_by(id=selected_booze_id).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 drink_load(drink.id)
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="")