txs:contrib:framadate_p18:resolution_d_une_troisieme_issue

Résolution d'une issue 3 : #208

Permettre la finalisation d’un sondage par l’administrateur
Une fois la décision prise, mettre un bouton : Sondage finalisé

  • Permettre à l’admin de sélectionner le choix retenu
  • Permettre à l’admin de mettre un texte justifiant ce choix
  • Eventuellement permettre un lien vers un CALDAV ou un ICS permettant de partager le RDV

Cette fonctionnalité me paraît d’abord tout à fait pertinente pour Framadate. Ensuite, il s’agit d’un travail de développement à mon sens intéressant (car touche à de nombreux fichiers à différents niveaux du projet) et suffisamment complexe.

Les deux premiers points sont à traiter, le troisième est encore en réflexion.
Pour résoudre cette issue (les deux premiers points), il est indispensable de la scinder en plusieurs sous-problèmes.
La décomposition sera donc la suivante :

  • Implémentation d’une option admin “Close the poll
  • Implémentation d’une option admin “Choose an option” (quand le sondage est terminé)
  • Implémentation d’une option admin “Explain the choice” (quand le sondage est terminé et qu’un choix a été retenu)

Ajout d’une fonctionnalité admin “Close the poll

Une fois un sondage fermé, plus aucune modification ne peut lui être apportée, c’est à dire :

  • le titre, le nom de l’auteur, la description, la date d’expiration et les paramètres du sondage (mot de passe, visibilité des résultats,…) ne peuvent plus être modifiés côté admin
  • aucun choix supplémentaire ne peut être ajouté par l’admin
  • aucun choix ne peut être supprimé par l’admin
  • aucun vote ne peut être ajouté / modifié / supprimé ni côté admin ni côté public
  • Modification de la BDD : ajout d’un attribut closed à la table poll (attribut booléen (TINYINT), par défault à FALSE (0))
    • Ajout d’un fichier de migration : AddColumnclosedInpoll.php * Appel à ce nouveau fichier dans le fichier migration.php * MAJ de la méthode update($poll) de la classe PollRepository (pour prendre en compte le nouvel attribut) * Ajout de l’affichage du nouveau paramètre closed dans pollinfo.tpl (côté admin et public)
  • Ajout d’un bouton Close the poll dans pollinfo.tpl (côté admin) * Ajout d’un script de confirmation de fermeture de sondage : closepoll.tpl (si confirmation, passage de la valeur de closed à TRUE (1))
  • MAJ pollinfo.tpl, votetableclassic.tpl et votetable_date.tpl : prise en compte de la valeur de closed dans l’affichage ou non des fonctionnalités (cf description)
  • MAJ du fichier de traduction (en.json)

Ajout de deux fonctionnalités admin ”Select the choice made” et “Explain the choice

Une fois un sondage fermé, il est possible de sélectionner le choix retenu (ce choix est unique) par l’administrateur du sondage : une icône apparaît au dessus de chacune des colonnes pour la sélection. La valeur de ce choix est accessible dans les informations sur le sondage, côté admin et côté public.

Implémentation de ”Select the choice made

  • Modification de la BDD : ajout d’un attribut adminchoice à la table poll (attribut chaîne de caractères (VARCHAR), par défault à ”” (la chaîne vide)) * Ajout d’un fichier de migration : AddColumnadminchoiceInpoll.php * Appel à ce nouveau fichier dans le fichier migration.php * MAJ de la méthode update($poll) de la classe PollRepository (pour prendre en compte le nouvel attribut) * Ajout de l’affichage côté admin et côté public de adminchoice dans pollinfo.tpl (si le sondage est fermé) * Ajout de l’affichage côté admin de boutons check au dessus de chaque colonne pour sélectionner un choix dans votetableclassic.tpl et votetabledate.tpl (si le sondage est fermé) * Ajout du traitement du clic sur le bouton check pour modifier la valeur de adminchoice dans adminstuds.php
  • MAJ du fichier de traduction (en.json)

Implémentation de “Explain the choice

  • Modification de la BDD : ajout d’un attribut adminchoiceexp à la table poll (attribut chaîne de caractères (VARCHAR), par défault à ”” (la chaîne vide))
    • Ajout d’un fichier de migration : AddColumnadminchoiceexpInpoll.php * Appel à ce nouveau fichier dans le fichier migration.php * MAJ de la méthode update($poll) de la classe PollRepository (pour prendre en compte le nouvel attribut) * Ajout de l’affichage côté admin et côté public de adminchoiceexp dans pollinfo.tpl (si le sondage est fermé)
  • Ajout d’un bouton pencil pour modifier adminchoiceexp (si le sondage est fermé)
  • Ajout du traitement du clic sur le bouton pencil pour modifier la valeur de adminchoiceexp dynamiquement dans adminstuds.js
  • Ajout traitement de la modification de adminchoiceexp dans adminstuds.php
  • MAJ du fichier de traduction (en.json)
  • Administration d’un sondage ouvert : informations et bouton

 Nouveau paramètre et bouton dans les infos d'un sondage

  • Confirmation de la fermeture du sondage

 Confirmation de la fermeture du sondage

  • Administration d’un sondage fermé : informations et sélection d’un choix

 Boutons pour sélectionner un choix au dessus de chaque colonne

  • Administration d’un sondage fermé : justification du choix

 Champ de texte pour expliquer le choix retenu

  • txs/contrib/framadate_p18/resolution_d_une_troisieme_issue.txt
  • de 127.0.0.1