From 0f09675e8149eeb42dcc6985e82ae445f4705238 Mon Sep 17 00:00:00 2001 From: Guillaume Subiron Date: Mon, 28 May 2012 11:35:40 +0200 Subject: [PATCH] Archive / currentwq votes are separated --- main.py | 85 ++++++++++++++++++++++++++++--------------- templates/layout.html | 4 +- 2 files changed, 57 insertions(+), 32 deletions(-) diff --git a/main.py b/main.py index 374ffeb..ea1179e 100755 --- a/main.py +++ b/main.py @@ -32,20 +32,68 @@ def teardown_request(exception): def home(): return render_template('index.html') -@app.route('/admin/votes') -def show_votes(): - cur = g.db.execute('select title, description, date_begin, date_end from votes order by id desc') + +#---------------- +# Login / Logout + +@app.route('/login', methods=['GET', 'POST']) +def login(): + error = None + if request.method == 'POST': + if request.form['username'] != app.config['USERNAME']: + error = 'Invalid username' + elif request.form['password'] != app.config['PASSWORD']: + error = 'Invalid password' + else: + session['logged_in'] = True + session['nickname'] = request.form['username'] + if session['nickname'] == 'admin': + session['is_admin'] = True + flash('You were logged in') + return redirect(url_for('home')) + return render_template('login.html', error=error) + +@app.route('/logout') +def logout(): + session.pop('logged_in', None) + flash('You were logged out') + return redirect(url_for('home')) + +#--------------- +# User settings + +#------------ +# User admin + + +#------------ +# Votes list + +@app.route('/votes/') +def show_votes(votes): + today = date.today().strftime('%d %B %Y') + if votes == 'all': + cur = g.db.execute('select title, description, date_begin, date_end from votes order by id desc') + elif votes == 'archives': + cur = g.db.execute('select title, description, date_begin, date_end from votes where date_end < :today order by id desc', {"today" : today}) + elif votes == 'currently': + cur = g.db.execute('select title, description, date_begin, date_end from votes where date_end > :today order by id desc', {"today" : today}) + else: + abort(404) votes = [dict(title=row[0], description=row[1], date_begin=row[2], date_end=row[3], pourcent=60) for row in cur.fetchall()] return render_template('show_votes.html', votes=votes) -@app.route('/admin/votes/new') +#------------- +# Votes admin + +@app.route('/votes/admin/new') def new_vote(): if not session.get('logged_in'): abort(401) return render_template('new_vote.html') -@app.route('/admin/vote/add', methods=['POST']) +@app.route('/votes/admin/add', methods=['POST']) def add_vote(): if not session.get('logged_in'): abort(401) @@ -66,32 +114,9 @@ def add_vote(): flash('New entry was successfully posted') return redirect(url_for('home')) -@app.route('/login', methods=['GET', 'POST']) -def login(): - error = None - if request.method == 'POST': - if request.form['username'] != app.config['USERNAME']: - error = 'Invalid username' - elif request.form['password'] != app.config['PASSWORD']: - error = 'Invalid password' - else: - session['logged_in'] = True - session['nickname'] = request.form['username'] - if session['nickname'] == 'admin': - session['is_admin'] = True - flash('You were logged in') - return redirect(url_for('home')) - return render_template('login.html', error=error) - -@app.route('/logout') -def logout(): - session.pop('logged_in', None) - flash('You were logged out') - return redirect(url_for('home')) - - +#------ +# Main if __name__ == '__main__': app.run() - diff --git a/templates/layout.html b/templates/layout.html index 0234d90..78f4ece 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -20,8 +20,8 @@
Accueil - Votes en cours - Archives + Votes en cours + Archives {% if session.is_admin %} Admin