Collecter les adresses emails des sondés
Je trouverai interessant d’avoir la possibilité pour l’administrateur d’un sondage de collecter les adresses mail des sondés (visibles uniquement sur le formulaire admin). Un peu comme le nom/pseudo, mais cachés au sondés, donc. Afin de faciliter la vie de l’administrateur en cloture de sondage : parfois, on envoie un sondage à 200 personnes. Et on ne souhaite recontacter que les 20 qui ont répondu “OK”.
C’était à la base une demande de Mozilla.
Il s’agit d’abord d’une demande fréquente au sein des utilisateurs de Framadate. Par ailleurs, cette modification ferait de Framadate un concurrent de taille face à Doodle où cette fonctionnalité est payante.
J’ai également choisi cette issue car elle me permettait de travailler sur presque tous les niveaux du projet (base de données, classes, fichiers .php
, fichiers .tpl
et fichiers .js
).
framadate/app/classes/Framadate/Migration
pour ajouter le nouvel attribut mail
à la table vote(poll_id, name, choices, uniqId)
dans la base de données/framadate/admin/migration.php
insert($pollid, $name, $choices, $token)
* MAJ de la méthode
update($pollid, $vote_id, $name, $choices)
updateVote($pollid, $voteid, $name, $choices, $slothash)
* MAJ de la méthode
addVote($pollid, $name, $choices, $slot_hash)
splitVote($votes)
updateVote
et addVote
$smarty
et appel du nouveau fichier display_mails.tpl
Afin que la première version soit intégrable dans le code source de Framadate, il est nécessaire de passer la collecte de mail comme une fonctionnalité optionnelle : à la création d’un sondage, l’administrateur choisit (ou non) de collecter les adresses mails des sondés.
collectusersmail
dans la table poll(id, adminid, title, description, adminname, adminmail, enddate, format, editable, receiveNewVotes, receiveNewComments, hidden, passwordhash, resultspubliclyvisible, ValueMax)
* Ajout d’un appel à ce fichier de migration dans
/framadate/admin/migration.php
=== Modifications des classes Form et PollRepository ===
* Ajout d’un attribut
collectusersmail à la classe
Form
* MAJ de la méthode
insertPoll de la classe
PollRepository
=== Passage de la collecte de mail en fonctionnalité admin ===
* Sur la création d’un sondage : ajout d’un paramètre optionnel (modification des fichiers
createpoll.php
et createpoll.tpl)
* Sur l’administration d’un sondage : ajout du paramètre dans les infos (modification du fichier
pollinfo.tpl
)mail
et des boutons enveloppe
(modification des fichiers votetabledate.tpl
et votetableclassic.tpl
(La saisie devient obligatoire si la collecte de mail est activée.)
createpoll.php,
createpoll.tpl
et createpoll.js)
* Lors de l’ajout d’un nouveau vote (modification des fichiers
votetabledate.tpl et
votetable_classic.tpl
)