Collecting polled users emails
Travail de développement pour résoudre l'issue 38 : "Collecter les adresses emails des sondés" : https://framagit.org/framasoft/framadate/issues/38
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.
-
Version 1
-
Itération 1 : Travail sur la collecte des adresses mails des sondés
- Modification de la BDD
- Ajout d'un fichier de migration dans le répertoire
framadate/app/classes/Framadate/Migration
pour ajouter le nouvel attributmail
à la tablevote(poll_id, name, choices, uniqId)
dans la base de données - Ajout d'un appel à ce fichier de migration dans
/framadate/admin/migration.php
- Ajout d'un fichier de migration dans le répertoire
- Modification de la classe
VoteRepository
- MAJ de la méthode
insert($poll_id, $name, $choices, $token)
- MAJ de la méthode
update($poll_id, $vote_id, $name, $choices)
- MAJ de la méthode
- Modification de la classe
PollService
- MAJ de la méthode
updateVote($poll_id, $vote_id, $name, $choices, $slot_hash)
- MAJ de la méthode
addVote($poll_id, $name, $choices, $slot_hash)
- MAJ de la méthode
splitVote($votes)
- MAJ de la méthode
- Modification des fichiers
studs.php
etadminstuds.php
- MAJ des appels à
updateVote
etaddVote
- MAJ des appels à
- Modification des templates
vote_table_date.tpl
etvote_table_classic.tpl
- Création du nouveau champ
- Modification de la BDD
-
Itération 2 : Développement d'une option permettant à l'admin d'obtenir facilement les adresses mails des sondés par option et par choix (oui, si besoin et non)
-
Modification des templates
vote_table_date.tpl
etvote_table_classic.tpl
- Ajout d'un bouton enveloppe associé à chaque colonne
-
Modification du fichier
adminstuds.tpl
- Ajout d'un traitement lorsqu'on clique sur le bouton enveloppe d'une colonne : récupération des adresses mails renseignées dans des tableaux de chaînes de caractères
- Transmission de ces tableaux à
$smarty
et appel du nouveau fichierdisplay_mails.tpl
-
Ajout d'un template
display_mails.tpl
- Affichage des adresses mails transmises
-
-
Problématique possible posée par la résolution de l'issue
L'adresse email est gérée de manière analogue au nom, notamment au niveau des modifications d'un vote. Ainsi, si l'on considère un sondage où Tou·te·s les sondé·e·s peuvent modifier tous les votes, chaque utilisateur possédant le lien au sondage peut accéder aux adresses mails de tous les sondés, on peut donc imaginer la possibilité de collecter les adresses mails à des fins malveillantes. -
Améliorations possibles
- Protection des adresses mails (cf problématique)
- Implémentation de la possibilité d'exporter les adresses mails en fichier CSV
- Ajouter une option admin pour ne pas collecter les mails
- Ajouter une option admin pour rendre la saisie d'une adresse obligatoire
-
-
Version 2 : Passage de la collecte des mails sous une fonctionnalité admin
- Modification de la BDD
- Ajout d'un fichier de migration pour ajouter le nouvel attribut
collect_users_mail
dans la tablepoll(id, admin_id, title, description, admin_name, admin_mail, end_date, format, editable, receiveNewVotes, receiveNewComments, hidden, password_hash, results_publicly_visible, ValueMax)
- Ajout d'un appel à ce fichier de migration dans
/framadate/admin/migration.php
- Ajout d'un fichier de migration pour ajouter le nouvel attribut
- Modifications des classes
Form
etPollRepository
pour manipuler le nouvel attribut- Ajout d'un attribut
collect_users_mail
à la classeForm
- MAJ de la méthode
insertPoll
de la classePollRepository
- Ajout d'un attribut
- 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
create_poll.php
etcreate_poll.tpl
) - Sur l'administration d'un sondage : ajout du paramètre dans les infos (modification du fichier
poll_info.tpl
) - Sur le vote : affichage ou non du champ
mail
et des boutonsenveloppe
(modification des fichiersvote_table_date.tpl
etvote_table_classic.tpl
- Sur la création d'un sondage : ajout d'un paramètre optionnel (modification des fichiers
- Passage des champs mail en
required
(saisie obligatoire si la collecte de mail est activée) - Ajout d'avertissements lorsque la collecte de mail est active et que les votes sont modifiables par tous (réponse à la problématique en V1)
-
Lors de la création du sondage (modification des fichiers
create_poll.php
,create_poll.tpl
etcreate_poll.js
) -
Lors de l'ajout d'un nouveau vote (modification des fichiers
vote_table_date.tpl
etvote_table_classic.tpl
)
-
- Modification de la BDD
Contact : justine.marlow@etu.utc.fr
Closes #38