Administration des users et des votes
[cavote.git] / main.py
diff --git a/main.py b/main.py
index bff42a0..ac71277 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -29,7 +29,7 @@ def teardown_request(exception):
 
 @app.route('/')
 def home():
-    return render_template('index.html')
+    return render_template('index.html', active_button="home")
 
 def query_db(query, args=(), one=False):
     cur = g.db.execute(query, args)
@@ -144,6 +144,13 @@ def user_password(userid):
 #------------
 # User admin
 
+@app.route('/users/admin/list')
+def admin_users():
+    if not session.get('user').get('is_admin'):
+        abort(401)
+    users = query_db('select * from users order by id desc')
+    return render_template('admin_users.html', users=users)
+
 @app.route('/users/admin/add', methods=['GET', 'POST'])
 def add_user():
     if not session.get('user').get('is_admin'):
@@ -206,15 +213,17 @@ def del_role(idrole):
 @app.route('/votes/<votes>')
 def show_votes(votes):
     today = date.today()
+    active_button = votes
+    basequery = 'select *, roles.name as rolename from votes join roles on roles.id=votes.id_role where open=1'
     if votes == 'all':
-        votes = query_db('select * from votes order by id desc')
+        votes = query_db(basequery + ' order by id desc')
     elif votes == 'archive':
-        votes = query_db('select * from votes where date_end < (?) order by id desc', [today])
+        votes = query_db(basequery + ' and date_end < (?) order by id desc', [today])
     elif votes == 'current':
-        votes = query_db('select * from votes where date_end >= (?) order by id desc', [today])
+        votes = query_db(basequery + ' and date_end >= (?) order by id desc', [today])
     else:
         abort(404)
-    return render_template('show_votes.html', votes=votes)
+    return render_template('show_votes.html', votes=votes, active_button=active_button)
 
 #------
 # Vote
@@ -233,18 +242,26 @@ def can_vote(idvote, iduser=-1):
 
 @app.route('/vote/<idvote>')
 def show_vote(idvote):
-    vote = query_db('select * from votes where id=?', [idvote], one=True)
+    vote = query_db('select *, roles.name as rolename from votes join roles on roles.id=votes.id_role where votes.id=?', [idvote], one=True)
     if vote is None:
         abort(404)
     if can_see_vote(idvote, session.get('user').get('id')):
         choices = query_db('select * from choices where id_vote=?', [idvote])
-        return render_template('vote.html', vote=vote, choices=choices, can_vote=can_vote(idvote, session.get('user').get('id')))
+        attachments = query_db('select * from attachments where id_vote=?', [idvote])
+        return render_template('vote.html', vote=vote, attachments=attachments, choices=choices, can_vote=can_vote(idvote, session.get('user').get('id')))
     flash('Vous n\'avez pas le droit de voir ce vote, désolé.')
     return(url_for('home'))
 
 #-------------
 # Votes admin
 
+@app.route('/votes/admin/list')
+def admin_votes():
+    if not session.get('user').get('is_admin'):
+        abort(401)
+    votes = query_db('select *, roles.name as rolename from votes join roles on roles.id=votes.id_role order by id desc')
+    return render_template('admin_votes.html', votes=votes)
+
 @app.route('/votes/admin/add', methods=['GET', 'POST'])
 def add_vote():
     if not session.get('user').get('is_admin'):