From: Guillaume Subiron Date: Wed, 30 May 2012 16:17:14 +0000 (+0200) Subject: Print groups in user list X-Git-Url: http://git.cyclocoop.org/?p=cavote.git;a=commitdiff_plain;h=965e005bba1208ef170275c170bd7f7cc1cadbfa Print groups in user list --- diff --git a/main.py b/main.py index d9488c9..735fa6d 100755 --- a/main.py +++ b/main.py @@ -158,8 +158,19 @@ def user_password(userid): def admin_users(): if not session.get('user').get('is_admin'): abort(401) - users = query_db('select *, roles.name as rolename from (select *, name as username from users join user_role on id=id_user order by id desc) join roles on id_role=roles.id') - # :TODO:maethor:20120530: Find a way to reduce the dict + tuples = query_db('select *, roles.name as rolename from (select *, id as userid, name as username from users join user_role on id=id_user order by id desc) join roles on id_role=roles.id') + users = dict() + for t in tuples: + if t['userid'] in users: + users[t['userid']]['roles'].append(t["rolename"]) + else: + users[t['userid']] = dict() + users[t['userid']]['userid'] = t['userid'] + users[t['userid']]['email'] = t['email'] + users[t['userid']]['username'] = t['username'] + users[t['userid']]['is_admin'] = t['is_admin'] + users[t['userid']]['roles'] = [t['rolename']] + return render_template('admin_users.html', users=users) @app.route('/admin/users/add', methods=['GET', 'POST']) diff --git a/templates/admin_users.html b/templates/admin_users.html index 8ec9eb3..c1934a7 100644 --- a/templates/admin_users.html +++ b/templates/admin_users.html @@ -17,11 +17,11 @@ - {% for user in users %} + {% for user in users.values() %} {{ user.email }} {{ user.username }} - {{ user.rolename }} + {% for role in user.roles %}{{ role }} {% endfor %} {% if user.is_admin %}Oui{% else %}Non{% endif %} Éditer