From 1cff7e924d9ea512195e14b79c475f2472a0bef2 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Wed, 12 Sep 2012 00:30:41 +0200 Subject: [PATCH] Send a main when opening a vote --- main.py | 26 ++++++++++++++++++++++++-- schema_0.2.X_to_0.3.X.sql | 2 ++ templates/admin_vote_edit.html | 15 +++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 schema_0.2.X_to_0.3.X.sql diff --git a/main.py b/main.py index fc18674..e70d72d 100755 --- a/main.py +++ b/main.py @@ -598,14 +598,36 @@ def admin_vote_edit(voteid): choices = query_db('select id_vote, count(*) as nb from choices where id_vote = ? group by id_vote', [voteid], one=True) if choices is not None and choices['nb'] >= 2: isopen = 1 + previousvote = query_db('select id, is_open, id_group from votes where id = ?', [voteid], one=True) + if previousvote is None or previousvote['is_open'] == 0: + users_to_vote = query_db('select users.email, users.name from users join user_group on users.id=user_group.id_user where user_group.id_group = ?', [previousvote['id_group']]) + for user in users_to_vote: + link = request.url_root + url_for('vote', idvote=voteid) + BODY = string.join(( + "From: %s" % EMAIL, + "To: %s" % user['email'], + "Subject: [Cavote] A vote has been opened for your group", + "Date: %s" % time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()).decode('utf-8'), + "X-Mailer: %s" % VERSION, + "", + "A vote has been opened and you are in a group concerned by it : %s" % request.form['title'], + "", + "This link will bring you to the form where you will be able to vote :", + link, + "", + "If you think this mail is not for you, please ignore and delete it." + ), "\r\n") + server = smtplib.SMTP(SMTP_SERVER) + server.sendmail(EMAIL, [user['email']], BODY) + server.quit() else: flash(u'Vous devez proposer au moins deux choix pour ouvrir le vote.', 'error') elif request.form['status'] == u'Terminé': isterminated = 1 if vote['is_open']: isopen = 1 - g.db.execute('update votes set title = ?, description = ?, category = ?, is_transparent = ?, is_public = ?, is_open = ?, is_terminated = ?, date_end = ? where id = ?', - [request.form['title'], request.form['description'], request.form['category'], transparent, public, isopen, isterminated, date_end, voteid]) + g.db.execute('update votes set title = ?, description = ?, category = ?, is_transparent = ?, is_public = ?, is_open = ?, is_terminated = ?, date_end = ?, reminder_last_days = ? where id = ?', + [request.form['title'], request.form['description'], request.form['category'], transparent, public, isopen, isterminated, date_end, request.form['reminder'], 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") diff --git a/schema_0.2.X_to_0.3.X.sql b/schema_0.2.X_to_0.3.X.sql new file mode 100644 index 0000000..1ffa657 --- /dev/null +++ b/schema_0.2.X_to_0.3.X.sql @@ -0,0 +1,2 @@ +ALTER TABLE votes +ADD reminder_last_days INTEGER DEFAULT 3 NOT NULL; diff --git a/templates/admin_vote_edit.html b/templates/admin_vote_edit.html index 85c38fa..42eef08 100644 --- a/templates/admin_vote_edit.html +++ b/templates/admin_vote_edit.html @@ -55,6 +55,21 @@ Du {{ vote.date_begin }} au {{ vote.date_end }} +
+ +
+ + derniers jours +
+
-- 2.20.1