From 508e68ccfccc606b0ea3f4f68e03cbc2377e9443 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Sat, 21 Mar 2015 23:26:44 -0400 Subject: form's logic almost working --- static/wedding.js | 2 +- templates/en/rsvp.htm | 10 +++++----- wedding.py | 44 ++++++++++++++++++++------------------------ 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/static/wedding.js b/static/wedding.js index 015bc83..492c346 100644 --- a/static/wedding.js +++ b/static/wedding.js @@ -24,7 +24,7 @@ $("input:radio[name=language]").change(function(){ $("button[name=login]").text("Login"); } }); -$("input:radio[name=answer]").change(function(){ +$("input:radio[name=rsvp]").change(function(){ var state = $(this).val()=="0"; ["email", "mailing", "plusoneyes", "plusoneno", "kidsyes","kidsno"]. forEach(function(id){ diff --git a/templates/en/rsvp.htm b/templates/en/rsvp.htm index 5d10456..b190ffc 100644 --- a/templates/en/rsvp.htm +++ b/templates/en/rsvp.htm @@ -23,21 +23,21 @@
+ name="full_name" placeholder="Your full name" value="{{form['full_name'] if form['full_name']}}"/>

Will you be able to make it to our wedding?

- +
@@ -122,7 +122,7 @@
-
diff --git a/wedding.py b/wedding.py index 249c940..c480491 100644 --- a/wedding.py +++ b/wedding.py @@ -66,21 +66,20 @@ def rsvp(): form=r) if request.method == 'POST': db = get_db() - args = (request.form["fullname"], - int(request.form["answer"]), - request.form["email"], - request.form["mailing"], - int(request.form["plusone"]), - request.form["plusonename"], - int(request.form["kids"]), - request.form["kidsnames"], - request.form["comments"], - session["user_name"]) - cur = db.execute("""UPDATE guests set full_name=?, - rsvp=?, email=?, mailing=?, plusone=?, plusonename=?, kids=?, - kidsnames=?, comments=? WHERE user_name=?""", args) - db.commit() - cur.close() + f = defaultdict(str) + update_string = [] + args = [] + for k, v in request.form.items(): + update_string.append("{0}=?".format(k)) + if k in ["rsvp", "plusone", "kids"]: + ## convert to integer + args.append(int(v)) + else: + args.append(v) + update_string = ",".join(update_string) + query = "UPDATE guests set %s WHERE user_name=?" % update_string + with db: + db.execute(query, tuple(args+[session['user_name']])) flash("We have updated your information!") return redirect(url_for('rsvp')) @@ -106,15 +105,12 @@ def login(): error = None if request.method == 'POST': db = get_db() - c = db.cursor() - c.execute("SELECT * from guests where user_name=?", - (request.form['username'],)) - if not c.fetchone(): - c.close() - flash(wn[request.form['language']]) - return redirect(url_for('login')) - else: - c.close() + with db: + db.execute("SELECT * from guests where user_name=?", + (request.form['username'],)) + if not db.fetchone(): + flash(wn[request.form['language']]) + return redirect(url_for('login')) if request.form['password'] != app.config['PASSWORD']: flash(wp[request.form['language']]) return redirect(url_for('login')) -- cgit v1.2.3-70-g09d2