Esempio n. 1
0
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="")
Esempio n. 2
0
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) 
Esempio n. 3
0
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)
Esempio n. 4
0
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="")