flash(u"Vous devez spécifier une adresse email.", 'error')
return render_template('add_user.html')
+#-------------
+# Roles admin
+
+@app.route('/roles')
+def show_roles():
+ if not session.get('user').get('is_admin'):
+ abort(401)
+ roles = query_db('select * from roles')
+ return render_template('show_roles.html', roles=roles)
+
+@app.route('/roles/admin/add', methods=['POST'])
+def add_role():
+ if not session.get('user').get('is_admin'):
+ abort(401)
+ if request.method == 'POST':
+ if request.form['name']:
+ g.db.execute('insert into roles (name) values (?)', [request.form['name']])
+ g.db.commit()
+ else:
+ flash(u"Vous devez spécifier un nom.", "error")
+ return redirect(url_for('show_roles'))
+
+@app.route('/roles/admin/delete/<idrole>')
+def del_role(idrole):
+ if not session.get('user').get('is_admin'):
+ abort(401)
+ role = query_db('select * from roles where id = ?', [idrole], one=True)
+ if role is None:
+ abort(404)
+ if role['system']:
+ abort(401)
+ g.db.execute('delete from roles where id = ?', [idrole])
+ g.db.commit()
+ return redirect(url_for('show_roles'))
+
#------------
# Votes list
create table roles (
id INTEGER primary key autoincrement,
- name TEXT
+ name TEXT,
+ system INTEGER default 0 not null
);
create table votes (
-- Test data
insert into users (email, password, name, organization, is_admin, key) values ("admin@admin.fr", "admin", "Toto (admin) Tata", "World corp", 1, "test");
-insert into roles (id, name) values (1, "Tous");
+insert into roles (id, name, system) values (1, "Tous", 1);
insert into roles (name) values ("CA");
insert into roles (name) values ("Members");
</form>
</div>
- <div class="span5 well">
+ <div class="span5 well pull-right">
<fieldset><legend>Choix</legend>
<table class="table table-stripped table-condensed">
<thead>
<li><a href="{{ url_for('add_vote') }}">Nouveau vote</a></li>
<li class="divider"></li>
<!--<li><a href="404">Utilisateurs</a></li>-->
+ <li><a href="{{ url_for('show_roles') }}">Groupes</a></li>
<li><a href="{{ url_for('add_user') }}">Nouvel utilisateur</a></li>
</ul>
{% endif %}
--- /dev/null
+{% extends "layout.html" %}
+{% block body %}
+<div class="row">
+<div class="span6 well">
+ <h2>Groupes</h2>
+ <hr />
+ {% if not roles %}
+ <div class="alert">Il n'y a aucun role.</div>
+ {% else %}
+ <table class="table table-stripped">
+ <thead>
+ <tr>
+ <th>Nom</th>
+ <th>Membres</th>
+ <th>Votes</th>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for role in roles %}
+ <tr>
+ <td><strong>{{ role.name }}</strong></td>
+ <td>TODO</td>
+ <td>TODO</td>
+ <td>{% if role.system %}<span class="label label-warning">system</span>{% else %}<a href="{{ url_for('del_role', idrole=role.id) }}" class="btn btn-danger btn-mini">Supprimer</a>{% endif %}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ <p>
+ <small>Les groupes « system » ne sont pas modifiables.</small>
+ </p>
+ {% endif %}
+</div>
+
+<div class="span5 well">
+ <form action="{{ url_for('add_role') }}" method="post" class="form-inline">
+ <fieldset><legend>Ajouter un groupe</legend>
+ <br />
+ <input type="text" name="name" id="name" value="Nom" />
+ <input type="submit" class="btn btn-primary" value="Ajouter" />
+ </fieldset>
+ </form>
+</div>
+</div>
+{% endblock %}
+