Résolution d'une issue 3 : #208
Description de l'issue
Lien
Texte
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
Justification du choix
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.
Conseil de Thomas Citharel
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)
Solution apportée : itération 1
Ajout d’une fonctionnalité admin “Close the poll“
Description
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
Travail réalisé
- Modification de la BDD : ajout d’un attribut
closed
à la tablepoll
(attribut booléen (TINYINT
), par défault àFALSE
(0
))- Ajout d’un fichier de migration :
AddColumnclosedInpoll.php
(côté admin et public)* 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
closeddans
pollinfo.tpl
- Ajout d’un bouton
Close the poll
danspollinfo.tpl
(si confirmation, passage de la valeur de(côté admin) * Ajout d’un script de confirmation de fermeture de sondage :
closepoll.tplclosed
àTRUE
(1
)) - MAJ
pollinfo.tpl
: prise en compte de la valeur de,
votetableclassic.tplet
votetable_date.tplclosed
dans l’affichage ou non des fonctionnalités (cf description) - MAJ du fichier de traduction (
en.json
)
Solution apportée : itération 2
Ajout de deux fonctionnalités admin ”Select the choice made” et “Explain the choice“
Description
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.
Travail réalisé
Implémentation de ”Select the choice made“
- Modification de la BDD : ajout d’un attribut
adminchoice
dansà 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
adminchoicepollinfo.tpl
dans(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.tplet
votetabledate.tpl(si le sondage est fermé) * Ajout du traitement du clic sur le bouton check pour modifier la valeur de
adminchoiceadminstuds.php
- MAJ du fichier de traduction (
en.json
)
Implémentation de “Explain the choice“
- Modification de la BDD : ajout d’un attribut
adminchoiceexp
à la tablepoll
(attribut chaîne de caractères (VARCHAR
), par défault à””
(la chaîne vide))- Ajout d’un fichier de migration :
AddColumnadminchoiceexpInpoll.php
(si le sondage est fermé)* 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
adminchoiceexpdans
pollinfo.tpl
- 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 dansadminstuds.js
- Ajout traitement de la modification de
adminchoiceexp
dansadminstuds.php
- MAJ du fichier de traduction (
en.json
)
Visualisation de la solution
- Administration d’un sondage ouvert : informations et bouton
- Confirmation de la fermeture du sondage
- Administration d’un sondage fermé : informations et sélection d’un choix
- Administration d’un sondage fermé : justification du choix