|
@@ -22,6 +22,7 @@ EMAIL = '"' + TITLE + '"' + ' <' + u"cavote@ffdn.org" + '>'
|
|
|
BASEURL = "http://localhost:5000"
|
|
|
VERSION = "cavote 0.0.1"
|
|
|
SMTP_SERVER = "10.33.33.30"
|
|
|
+PATTERNS = {u'Oui/Non': [u'Oui', u'Non'], u'Oui/Non/Peut-être': [u'Oui', u'Non', u'Peut-être']}
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
app.config.from_object(__name__)
|
|
@@ -223,26 +224,37 @@ def admin_user_add():
|
|
|
abort(401)
|
|
|
if request.method == 'POST':
|
|
|
if request.form['email']:
|
|
|
- # :TODO:maethor:120528: Check fields
|
|
|
- password = "toto" # :TODO:maethor:120528: Generate password
|
|
|
- admin = 0
|
|
|
- if 'admin' in request.form.keys():
|
|
|
- admin = 1
|
|
|
- g.db.execute('insert into users (email, name, organization, password, is_admin, key) values (?, ?, ?, ?, ?, "invalid")',
|
|
|
- [request.form['email'], request.form['username'], request.form['organization'], password, admin])
|
|
|
- g.db.commit()
|
|
|
- user = query_db('select * from users where email = ?', [request.form["email"]], one=True)
|
|
|
- if user:
|
|
|
- for group in request.form.getlist('groups'):
|
|
|
- if query_db('select id from groups where id = ?', group, one=True) is None:
|
|
|
- abort(401)
|
|
|
- g.db.execute('insert into user_group values (?, ?)', [user['id'], group])
|
|
|
- g.db.commit()
|
|
|
- # :TODO:maethor:120528: Send mail
|
|
|
- flash(u'Le nouvel utilisateur a été créé avec succès', 'success')
|
|
|
- return redirect(url_for('admin_users'))
|
|
|
+ if query_db('select * from users where email=?', [request.form['email']], one=True) is None:
|
|
|
+ if request.form['username']:
|
|
|
+ if query_db('select * from users where name=?', [request.form['username']], one=True) is None:
|
|
|
+ # :TODO:maethor:120528: Check fields
|
|
|
+ password = "toto" # :TODO:maethor:120528: Generate password
|
|
|
+ admin = 0
|
|
|
+ if 'admin' in request.form.keys():
|
|
|
+ admin = 1
|
|
|
+ g.db.execute('insert into users (email, name, organization, password, is_admin, key) values (?, ?, ?, ?, ?, "invalid")',
|
|
|
+ [request.form['email'], request.form['username'], request.form['organization'], password, admin])
|
|
|
+ g.db.commit()
|
|
|
+ user = query_db('select * from users where email = ?', [request.form["email"]], one=True)
|
|
|
+ if user:
|
|
|
+ groups = request.form.getlist('groups')
|
|
|
+ groups.append('1')
|
|
|
+ for group in groups:
|
|
|
+ if query_db('select id from groups where id = ?', group, one=True) is None:
|
|
|
+ abort(401)
|
|
|
+ g.db.execute('insert into user_group values (?, ?)', [user['id'], group])
|
|
|
+ g.db.commit()
|
|
|
+ # :TODO:maethor:120528: Send mail
|
|
|
+ flash(u'Le nouvel utilisateur a été créé avec succès', 'success')
|
|
|
+ return redirect(url_for('admin_users'))
|
|
|
+ else:
|
|
|
+ flash(u'Une erreur s\'est produite.', 'error')
|
|
|
+ else:
|
|
|
+ flash(u'Le nom ' + request.form['username'] + u' est déjà pris ! Veuillez en choisir un autre.', 'error')
|
|
|
+ else:
|
|
|
+ flash(u"Vous devez spécifier un nom d'utilisateur.", 'error')
|
|
|
else:
|
|
|
- flash(u'Une erreur s\'est produite.', 'error')
|
|
|
+ flash(u'Il existe déjà un compte pour cette adresse e-mail : ' + request.form['email'], 'error')
|
|
|
else:
|
|
|
flash(u"Vous devez spécifier une adresse email.", 'error')
|
|
|
groups = query_db('select * from groups where system=0')
|
|
@@ -436,6 +448,11 @@ def admin_vote_add():
|
|
|
flash(u'Une erreur est survenue !', 'error')
|
|
|
return redirect(url_for('home'))
|
|
|
else:
|
|
|
+ if request.form['pattern'] in PATTERNS.keys():
|
|
|
+ pattern = PATTERNS[request.form['pattern']]
|
|
|
+ for choice in pattern:
|
|
|
+ g.db.execute('insert into choices (name, id_vote) values (?, ?)', [choice, vote['id']])
|
|
|
+ g.db.commit()
|
|
|
flash(u"Le vote a été créé", 'info')
|
|
|
return redirect(url_for('admin_vote_edit', voteid=vote['id']))
|
|
|
else:
|
|
@@ -443,7 +460,7 @@ def admin_vote_add():
|
|
|
else:
|
|
|
flash(u'Vous devez spécifier un titre.', 'error')
|
|
|
groups = query_db('select * from groups')
|
|
|
- return render_template('admin_vote_new.html', groups=groups)
|
|
|
+ return render_template('admin_vote_new.html', groups=groups, patterns=PATTERNS)
|
|
|
|
|
|
@app.route('/admin/votes/edit/<voteid>', methods=['GET', 'POST'])
|
|
|
def admin_vote_edit(voteid):
|