|
@@ -5,6 +5,7 @@ from flask import Flask, request, session, g, redirect, url_for, abort, \
|
|
|
render_template, flash
|
|
|
import sqlite3
|
|
|
from datetime import date, timedelta
|
|
|
+from contextlib import closing
|
|
|
import locale
|
|
|
locale.setlocale(locale.LC_ALL, '')
|
|
|
|
|
@@ -32,6 +33,17 @@ def teardown_request(exception):
|
|
|
def home():
|
|
|
return render_template('index.html')
|
|
|
|
|
|
+def query_db(query, args=(), one=False):
|
|
|
+ cur = g.db.execute(query, args)
|
|
|
+ rv = [dict((cur.description[idx][0], value)
|
|
|
+ for idx, value in enumerate(row)) for row in cur.fetchall()]
|
|
|
+ return (rv[0] if rv else None) if one else rv
|
|
|
+
|
|
|
+def init_db():
|
|
|
+ with closing(connect_db()) as db:
|
|
|
+ with app.open_resource('schema.sql') as f:
|
|
|
+ db.cursor().executescript(f.read())
|
|
|
+ db.commit()
|
|
|
|
|
|
#----------------
|
|
|
# Login / Logout
|
|
@@ -79,15 +91,13 @@ def show_settings(username):
|
|
|
def show_votes(votes):
|
|
|
today = date.today()
|
|
|
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 < (?) order by id desc', [today])
|
|
|
- elif votes == 'currently':
|
|
|
- cur = g.db.execute('select title, description, date_begin, date_end from votes where date_end >= (?) order by id desc', [today])
|
|
|
+ votes = query_db('select title, description, date_begin, date_end from votes order by id desc')
|
|
|
+ elif votes == 'archive':
|
|
|
+ votes = query_db('select title, description, date_begin, date_end from votes where date_end < (?) order by id desc', [today])
|
|
|
+ elif votes == 'current':
|
|
|
+ votes = query_db('select title, description, date_begin, date_end from votes where date_end >= (?) order by id desc', [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)
|
|
|
|
|
|
#-------------
|