txs:contrib:framadate_p18:resolution_d_une_premiere_issue

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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] marlowjutxs:framadate-p18:resolution_d_une_premiere_issue [2018/04/15 12:16] marlowju
Ligne 10: Ligne 10:
  
 ==== 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 =====
Ligne 55: Ligne 56:
   * 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
  
  • txs/contrib/framadate_p18/resolution_d_une_premiere_issue.txt
  • de 127.0.0.1