Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. ====== Issue 1 : #38 ====== ===== Description de l'issue ===== ==== Lien ==== https://framagit.org/framasoft/framadate/issues/38 ==== Texte ==== //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.// ==== Justification du choix ==== 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. ===== Solution apportée ===== ==== Itération 1 : Ajout de la collecte du mail dans le formulaire de sondage ==== === Modification de la BDD === * Ajout d'un fichier de migration dans le répertoire ''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 * Ajout d'un appel à ce fichier de migration dans ''/framadate/admin/migration.php'' === 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)'' === 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)'' === Modification des fichiers studs.php et adminstuds.php === * MAJ des appels à ''updateVote'' et ''addVote'' === Modification des templates ''vote_table_date.tpl'' et ''vote_table_classic.tpl'' === * Création du nouveau champ === Visualisation de l'itération 1 === * Pour un sondage de type //date// (côté //admin// et côté //user//) {{ :txs:framadate-p18:justineissue1:table_vote_date_admin.png?530 | Table des vote côté admin (date)}} {{ :txs:framadate-p18:justineissue1:table_vote_date_user.png?530 | Table des vote côté user (date)}} * Pour un sondage de type //classic// (côté //admin// et côté //user//) {{ :txs:framadate-p18:justineissue1:table_vote_classic_admin.png?530 |Table des vote côté admin (classic)}} {{ :txs:framadate-p18:justineissue1:table_vote_classic_user.png?530 | Table des vote côté user (classic)}} ==== Itération 2 : Implémentation d'une fonctionnalité admin permettant la collecte des mails ==== === Modification des templates ''vote_table_date.tpl'' et ''vote_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 fichier ''display_mails.tpl'' === Ajout d'un template display_mails.tpl === * Affichage des adresses mails transmises === Visualisation de l'itération 2 === * Icône //enveloppe// pour un sondage de type //date// et pour un sondage de type //classic// {{ :txs:framadate-p18:justineissue1:collect_mail_date.png?530 | Table des vote côté admin (date)}} {{ :txs:framadate-p18:justineissue1:collect_mail_classic.png?530 | Table des vote côté admin (classic)}} * Exemple d'affichage de collecte de mails pour un sondage {{ :txs:framadate-p18:justineissue1:collect_mail_classic_ej.png?530 | Exemple d'affichage de collecte de mails}} ===== Merge request ===== https://framagit.org/framasoft/framadate/merge_requests/266 txs/contrib/framadate_p18/resolutions_des_issues.txtde 127.0.0.1