X-Git-Url: http://git.cyclocoop.org/?p=cavote.git;a=blobdiff_plain;f=main.py;h=bdbd032ed78544c505ebc4af3b0ba0cd027cb8c8;hp=c26c2cb171165085ec3fcfed02db7efb5ab86073;hb=c99b9d04a42f493cf7b8bf1e81022bb65e2b939b;hpb=f42b7613c22add2650031ac5fa04065d82393436 diff --git a/main.py b/main.py index c26c2cb..bdbd032 100755 --- a/main.py +++ b/main.py @@ -201,8 +201,11 @@ def add_vote(): public = 1 if 'multiplechoice' in request.form.keys(): multiplechoice = 1 - g.db.execute('insert into votes (title, description, date_begin, date_end, is_transparent, is_public, is_multiplechoice) values (?, ?, ?, ?, ?, ?, ?)', - [request.form['title'], request.form['description'], date_begin, date_end, transparent, public, multiplechoice]) + role = query_db('select id from roles where name = ?', [request.form['role']], one=True) + if role is None: + role[id] = 1 + g.db.execute('insert into votes (title, description, category, date_begin, date_end, is_transparent, is_public, is_multiplechoice, id_role, id_author) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', + [request.form['title'], request.form['description'], request.form['category'], date_begin, date_end, transparent, public, multiplechoice, role['id'], session['user']['id']]) g.db.commit() vote = query_db('select * from votes where title = ? and date_begin = ? order by id desc', [request.form['title'], date_begin], one=True) # :DEBUG:maethor:20120528: Bug possible car le titre n'est pas unique @@ -214,7 +217,8 @@ def add_vote(): return redirect(url_for('edit_vote', voteid=vote['id'])) else: flash(u'Vous devez spécifier un titre.', 'error') - return render_template('new_vote.html') + groups = query_db('select * from roles') + return render_template('new_vote.html', groups=groups) @app.route('/votes/admin/edit/', methods=['GET', 'POST']) def edit_vote(voteid): @@ -223,10 +227,31 @@ def edit_vote(voteid): vote = query_db('select * from votes where id = ?', [voteid], one=True) if vote is None: abort(404) - #if request.method == 'POST': - # :TODO:maethor:20120528 + if request.method == 'POST': + if request.form['title']: + # :TODO:maethor:120529: Calculer date_begin pour pouvoir y ajouter duration et obtenir date_end + transparent = 0 + public = 0 + if 'transparent' in request.form.keys(): + transparent = 1 + if 'public' in request.form.keys(): + public = 1 + isopen = 0 + if request.form['status'] == 'Ouvert': + isopen = 1 + g.db.execute('update votes set title = ?, description = ?, category = ?, is_transparent = ?, is_public = ?, is_open = ? where id = ?', + [request.form['title'], request.form['description'], request.form['category'], transparent, public, isopen, voteid]) + g.db.commit() + vote = query_db('select * from votes where id = ?', [voteid], one=True) + flash(u"Le vote a bien été mis à jour.", "success") + else: + flash(u'Vous devez spécifier un titre.', 'error') + + # :TODO:maethor:20120529: Calculer la durée du vote (différence date_end - date_begin) + vote['duration'] = 15 + group = query_db('select name from roles where id = ?', [vote['id_role']], one=True) choices = query_db('select * from choices where id_vote = ?', [voteid]) - return render_template('edit_vote.html', vote=vote, choices=choices) + return render_template('edit_vote.html', vote=vote, group=group, choices=choices) @app.route('/votes/admin/addchoice/', methods=['POST']) def add_choice(voteid):