Les deux révisions précédentes Révision précédente | Prochaine révisionLes deux révisions suivantes |
txs:framadate-p18:resolution_d_une_premiere_issue [2018/04/04 14:58] – marlowju | txs:framadate-p18:resolution_d_une_premiere_issue [2018/04/15 12:16] – marlowju |
---|
| |
==== Justification du choix ==== | ==== 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. | 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''). |
| |
===== Solution apportée : Version 1 ===== | ===== Solution apportée : Version 1 ===== |
* Exemple d'affichage de collecte de mails pour un sondage (correspond à l'option //Avatar// du sondage //classic//) | * Exemple d'affichage de collecte de mails pour un sondage (correspond à l'option //Avatar// du sondage //classic//) |
{{ :txs:framadate-p18:justineissue1:collect_mail_classic_ej.png?530 | Exemple d'affichage de collecte de mails}} | {{ :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 | |
| |
===== Solution apportée : Version 2 ===== | ===== Solution apportée : Version 2 ===== |
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. | 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. |
| |
==== Itération 1 : Ajout du paramètre de collecte de mail dans le formulaire de sondage ==== | |
=== Modification de la BDD === | === Modification de la BDD === |
* Ajout d'un fichier de migration dans le répertoire ''framadate/app/classes/Framadate/Migration'' pour ajouter le nouvel attribut ''collect_mail'' à la table ''poll(id, admin_id, title, description, admin_name, admin_mail, end_date, format, editable, receiveNewVotes, receiveNewComments, hidden, password_hash, results_publicly_visible, ValueMax)'' dans la base de données | * Ajout d'un fichier de migration pour ajouter le nouvel attribut ''collect_users_mail'' dans la table ''poll(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 appel à ce fichier de migration dans ''/framadate/admin/migration.php'' |
| === Modifications des classes Form et PollRepository === |
| * Ajout d'un attribut ''collect_users_mail'' à 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 ''create_poll.php'' et ''create_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 boutons ''enveloppe'' (modification des fichiers ''vote_table_date.tpl'' et ''vote_table_classic.tpl'' |
| === Passage des champs mail en ''required'' === |
| (La saisie devient 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'' et ''create_poll.js'') |
| * Lors de l'ajout d'un nouveau vote (modification des fichiers ''vote_table_date.tpl'' et ''vote_table_classic.tpl'') |
| |
| === Visualisation de la version 2 === |
| * Affichage du nouveau paramètre optionnel dans la création d'un sondage |
| {{ :txs:framadate-p18:justineissue1:creation.png?530 | Nouveau paramètre optionnel dans la création d'un sondage}} |
| * Affichage du nouveau paramètre dans les infos d'un sondage |
| {{ :txs:framadate-p18:justineissue1:info.png?530 | Nouveau paramètre affiché dans les infos d'un sondage}} |
| * Avertissement lors de la création d'un sondage |
| {{ :txs:framadate-p18:justineissue1:avertissement_creation.png?530 | Avertissement lors de la création d'un sondage}} |
| * Avertissement lors du vote |
| {{ :txs:framadate-p18:justineissue1:avertissement_vote.png?530 | Avertissement lors du vote}} |
| |
| |
| ===== Merge request ===== |
| https://framagit.org/framasoft/framadate/merge_requests/266 |
| |