diff options
Diffstat (limited to 'wedding.py')
| -rw-r--r-- | wedding.py | 40 |
1 files changed, 19 insertions, 21 deletions
@@ -5,9 +5,18 @@ from flask import Flask, request, session, g, redirect, url_for, render_template from flask import flash from functools import wraps from collections import defaultdict +from flask.ext.babel import Babel, gettext, refresh app = Flask(__name__) app.config.from_envvar('CONF') +babel = Babel(app) + +@babel.localeselector +def get_locale(): + locale = session.get('lang', None) + if locale is not None: + return locale + return request.accept_languages.best_match(['en', 'fr', 'sr']) def query_db(query, args=(), one=False): cur = get_db().execute(query, args) @@ -44,30 +53,25 @@ def login_required(f): @app.route('/getting/') def getting_there(): - return render_template("{0}/getting.htm".format(session["lang"]), - lang = session["lang"]) + return render_template("getting.html") @app.route('/gifts/') def gifts(): - return render_template("{0}/gifts.htm".format(session["lang"]), - lang= session["lang"]) + return render_template("gifts.html") @app.route('/lodging/') def lodging(): - return render_template("{0}/lodging.htm".format(session["lang"]), - lang = session["lang"]) + return render_template("lodging.html") @app.route('/rsvp/', methods=['GET', 'POST']) def rsvp(): if request.method == 'GET': r = query_db("SELECT * from guests where user_name=?", (session["user_name"],), one=True) - return render_template("{0}/rsvp.htm".format(session["lang"]), - lang = session["lang"], + return render_template("rsvp.html", form=r) if request.method == 'POST': db = get_db() - f = defaultdict(str) update_string = [] args = [] for k, v in request.form.items(): @@ -81,7 +85,7 @@ def rsvp(): 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!") + flash(gettext("We have updated your information!")) return redirect(url_for('rsvp')) @@ -89,34 +93,28 @@ def rsvp(): @app.route('/home/') @login_required def main_page(): - return render_template("{0}/main.htm".format(session["lang"]), - lang=session["lang"]) + return render_template("main.html") @app.route('/login/', methods=['GET', 'POST']) def login(): - wp = {'en': 'Wrong password', - 'fr': 'Mot de passe erroné', - 'sr': 'Pogrešna šifra'} - wn = {'en': 'Wrong name', - 'fr': 'Prénom incorrect', - 'sr': 'Pogrešno ime'} if 'user_name' in session: return redirect(url_for('main_page')) error = None if request.method == 'POST': + session['lang'] = request.form['language'] + refresh() db = get_db() with db: c = db.execute("SELECT * from guests where user_name=?", (request.form['username'],)) if not c.fetchone(): - flash(wn[request.form['language']]) + flash(gettext("Wrong name")) return redirect(url_for('login')) if request.form['password'] != app.config['PASSWORD']: - flash(wp[request.form['language']]) + flash(gettext("Wrong password")) return redirect(url_for('login')) session['user_name'] = request.form['username'] - session['lang'] = request.form['language'] return redirect(url_for('main_page')) return render_template('login.htm') |
