Example #1
0
def leihen_edit(leihe_id=None):
    """
    Create und update for Leihen.
    Wertet auf die URL-Query Parameter kunde_id und station_id aus, die die entsprechenden Felder voreinstellen.
    """
    leihe = None
    try:
        if leihe_id:
            leihe = Leihe(**rest_get_id("leihen", leihe_id))
            form = LeiheForm(request.form, leihe)
        else:
            form = LeiheForm()
        form.kunde_id.choices = [(kunde["id"], kunde["name"]) for kunde in rest_get_all("kunden")]
        form.car_id.choices = [(car["id"], car["platenumber"]) for car in rest_get_all("cars")]
        form.station_abhol_id.choices = [(station["id"], station["name"]) for station in rest_get_all("stations")]
        form.station_return_id.choices = [(station["id"], station["name"]) for station in rest_get_all("stations")]
        if u'kunde_id' in request.args:
            form.kunde_id.data = int(request.args[u'kunde_id'])
        if u'station_id' in request.args:
            form.station_abhol_id.data = int(request.args[u'station_id'])
            form.station_return_id.data = int(request.args[u'station_id'])
        if form.validate_on_submit():
            kunde = Kunde(**rest_get_id("kunden", form.data["kunde_id"]))
            data = form.data
            data["von"] = form.data["von"].isoformat()
            data["bis"] = form.data["bis"].isoformat()
            if not leihe_id:
                del(data["id"])
                rest_post("leihen", data)
                flash(u"Leihe für %s wurde neu angelegt" % kunde.name, category="success")
            else:
                rest_put("leihen", leihe_id, data)
                flash(u"Leihe für %s wurde neu geändert" % kunde.name, category="success")
            return redirect(url_for('leihen_list'))
    except HTTPError, e:
        return errorpage(e)
Example #2
0
    else:
        form = KundenForm()

    laendernamen = [c[1] for c in COUNTRIES]
    if kunde_id:
        if kunde.country in laendernamen:
            del(laendernamen[laendernamen.index(kunde.country)])
            laendernamen.insert(0, kunde.country)
    choices = zip(laendernamen, laendernamen)
    form.country.choices = zip(laendernamen, laendernamen)

    if form.validate_on_submit():
        try:
            if not kunde_id:        # Delete possible id-Field for new Kunden
                del(form['id'])
                rest_post("kunden", form.data)
                flash(("Kunde %s wurde neu angelegt" % form.data["name"]))
            else:
                rest_put("kunden", kunde_id, form.data)
                flash(("Kunde %s wurde gespeichert" % form.data["name"]))
        except HTTPError, e:
                return errorpage(e)
        return redirect(url_for('kunden_list'))
    return render_template("kunden_edit.html", form=form, kunde=kunde, leihen=leihen, leihen_fields=LEIHE_FIELDS)

@app.route("/kunde/<int:kunde_id>/delete/")
def kunden_delete(kunde_id):
    """
    Löschen eines Kunden - aber nur wenn er keine offenen Leihen gibt.
    """
    kunde = Kunde(**rest_get_id("kunden", kunde_id))