zds-site
zds-site copied to clipboard
Intégration de la possibilité de faire des quizz
Le but de cette PR est de montrer qu'il est possible de faire facilement des quizz. Elle n'est pas pour l'instant prête à être testée.
Les possibilités suite à cette PR :
- le POC est proche de ce qu'on veut (release early) => on peaufine et on merge => "on" = moi logiquement sauf si j'ai un empêchement
- le POC montre ce qu'il est possible de faire mais il faut passer par des évolutions du site et de zmd pour l'intégrer => on reprendra le code plus tard dans une autre PR => on = toute personne volontaire.
Rappel les quizz ne sont pas la priorité, c'est juste un POC suite à une idée que j'ai eu par hasard.
Ce que j'attends de cette PR pour l'instant:
- des commentaires quant à l'idée
- des commentaires quant à ce qu'il faudrait améliorer dans le concept
- un état des lieux de combien cette fonctionnalité est utile au site (vote, commentaire)
j'ouvrirai un topic sur le fofo pour améliorer les retours quant au dernier point
- [x] attendre le merge de la refonte graphique
- [x] fixer le soucis de fusion de la dernière réponse et de l'éventuelle correction
- [x] documentation, notamment pour préparer les évolutions
- [x] nettoyage du code pour le rende plus lisible, notamment sur le js
- [x] styling statistiques (alignement réponse/jauge)
- [x] réduire la page de sats pour les quizz
- [x] Injecter un texte pour dire que la réponse est bonne/fausse lors de la phase de correction
- [x] Injecter un texte "Félicitations vous avez bien répondu" ou "Malheureusement vous n'avez pas trouvé la bonne réponse"
- [x] Calculer et afficher le %age de réussite
Avancement pour l'instant :
- je suis capable de récupérer les questions
- évaluer la correction
- marquer les mauvaises réponse
- dire combien de questions ont foiré
- dire combien de questions on a à la base
Pour l'instant, j'ai pas trop d'idée sur comment on peut exprimer ça.
L'intérêt de ce POC c'est qu'il permet de mettre en avant ce qu'on peut faire sans changement drastique de ZDS et ZMD. Il a aussi mis en avant qu'un petit changement dans zmd serait intéressant : créer un bloc quizz.
Imaginons :
[[quizz | la question]]
| - [ ] réponse 1
| - [x] bonne réponse
| - [ ] réponse 2
| [[neutre | explication]]
| | La bonne réponse est "bonne réponse" car c'est elle qui s'approche le plus de la philosophie de la bonne réponse contrairement aux mauvaises réponses
Et moi avec du JS, je peux tout à fait bien colorer les blocs, et surtout afficher/cacher les blocs.
Avoir un bloc quizz permet aussi de mettre tout ce qu'il faut correctement dans les PDF par exemple.
Pour l'instant je vais terminer mon POC en essayant de remonter différentes stats alors qu'on n'a pas de bloc quizz. Cependant je pense qu'on se dirige vers l'ajout de ce bloc.
Bon état des lieux cette semaine :
j'ai remonté les statistiques, et je peux les afficher sous une forme qui semble faire plaisir à pas mal de monde
Comment passer du POC au travail final?
Voir le post original
Coverage decreased (-0.2%) to 88.146% when pulling 7961f52fac2f47b57f368183ced7a3363f3e8a8c on artragis:poc_quizz into 5c971b5a7eff0ba46cf3ddcacc406d6b250ed7eb on zestedesavoir:dev.
Après normalisation du CSS, (mais avant l'application du nouveau zmd), ça donne ça :
Avant de répondre
Après réponse
Les stats
chose étrange, j'ai des bugs assez space et sur mon espace de travail je n'arrive pas à recharger le CSS à chaque fois que je me modifie, du coup ça m'empêche de faire des tests fiables
Évidemment, capture sans l'inspecteur :
Quelques retours préliminaires sur ce POC
Concernant la création de questionnaires
Actuellement, on a deux boutons : créer une section, et créer un quizz. Les quizz sont des extraits classiques mais marqués comme des quizz.
Première chose, sur l'implémentation actuelle, je pense qu'il faudrait améliorer la page « nouveau quizz » — quand on en créé un, on arrive sur une page… ordinaire, sans aucune instruction : c'est assez confus. Comment en créer un ? Comment sélectionner les réponses ? Aucune instruction n'est donnée. Il faudrait.
Mais au delà de ça, je me demande si avoir un extrait de type quizz est réellement nécessaire — avec l'arrivée du bloc quizz de zmd avec sa version 10, ne serait-il pas pertinent de ne pas avoir de marque “quizz” dans un extrait, et de ne se baser que sur la présence d'un bloc quizz, comme ceci par exemple ?
[[quizz|$\lim\limits_{x \to +\infty} x^2 + 4$]]
| - [ ] $0$
| - [x] $+\infty$
| - [ ] $-\infty$
| - [ ] 4
Si c'est trop compliqué techniquement et qu'il faut absolument la marque is_quizz
, je suggèrerais de masquer totalement ce détail de l'interface, car ce n'est en réalité pas nécessaire : on peut détecter qu'un extrait contient un quizz assez facilement (il suffit de voir s'il y a un élément quizz
dedans — et zmd pourrait même nous retourner l'info) et de là, marquer l'extrait comme ayant un quizz (ou non).
Ça rendrait le système beaucoup plus simple à utiliser : pour créer un quizz, on créé un bloc quizz
, et voilà, sans se poser la question d'où on est. Ça permet de faire facilement des quizz n'importe où, par exemple au fur et à mesure d'un contenu et pas uniquement groupés à la fin, sans avoir à se dire « mince, il faut que je fasse de cette section une section “quizz” » pour que ça marche. Je pense que ce serait bien mieux.
Concernant la réponse aux questionnaires par les lecteurs des contenus
Le système en l'état actuel est assez propre. J'aurais ajouté un message explicite disant qu'on a réussi ou non une question, en plus du fond de couleur. Ce fond, d'ailleurs, gagnerait à être bien plus clair dans les deux cas afin que le texte soit plus lisible. Je pense qu'on pourrait aussi trouver une interface plus adaptée aux quizz que les blocs neutres, ce qui sera possible avec zmd 10 et le bloc dédié, notamment quand les questions sont longues. Je vais essayer d'y réfléchir.
Concernant la consultation des statistiques des quizz
C'est assez propre, par contre l'évaluation de zmd et l'affichage du pourcentage à côté des barres seraient un plus.
Concernant l'évolution future
Il pourrait être intéressant de réutiliser cette base de code pour ajouter une fonctionnalité de sondages afin de collecter des retours de lecteurs facilement. Il suffirait d'avoir la même interface (tout pareil) mais en déclarant un quizz sans aucune bonne réponse. Les résultats du sondage seraient dans les stats — comme actuellement, rien à toucher donc. C'est qu'une idée bien sûr.
Concernant la metadata "is_quizz"
- À l'heure actuelle, les blocs quizz n'existent pas car zmd 10 n'existe pas
- Avoir l'information "quizz" permet de mettre en avant dans le titre qu'on a un quizz, surtout ça permet de savoir qu'on doit mettre un formulaire et donc le bouton de soumission
- J'avoue que je ne sais pas comment mettre en avant le fait qu'on est en train d'éditer un quizz ou pas
Concernant ZMD et les maths
ça devrait être facile à corriger, il faut utiliser emarkdown dans le template, je l'ajoute à la todolist
Évolution future
Il pourrait être intéressant de réutiliser cette base de code pour ajouter une fonctionnalité de sondages afin de collecter des retours de lecteurs facilement. Il suffirait d'avoir la même interface (tout pareil) mais en déclarant un quizz sans aucune bonne réponse. Les résultats du sondage seraient dans les stats — comme actuellement, rien à toucher donc. C'est qu'une idée bien sûr.
La possibilité de faire des sondages à partir de ce genre de code est tout à fait réaliste. C'est même une évolution déjà proposée même si j'avoue que du coup il faudrait détecter les quizz sans bonne réponse pour éviter d'avoir le retour de correction.
Avoir l'information "quizz" permet de mettre en avant dans le titre qu'on a un quizz, surtout ça permet de savoir qu'on doit mettre un formulaire et donc le bouton de soumission
Ce formulaire ne peut pas être injecté sur l'élément .custom-block.custom-block-quizz
— ou plutôt, après une série de tels éléments (donc juste avant un élément .custom-block.custom-block-quizz + :not(.custom-block.custom-block-quizz)
ou juste après .custom-block.custom-block-quizz:last-child
) ?
L'avantage que je vois c'est de ne pas s'embêter à déclarer qu'il y a un quizz dans la section et pouvoir en mettre n'importe où. Aussi, ça permettrait de mettre plusieurs quizzes indépendants dans une même partie, par exemple si on veut mettre plusieurs exercices, ou un quizz à la fin de chaque titre dans un extrait, ou n'importe quoi d'autre. C'est beaucoup plus souple.
J'avoue que je ne sais pas comment mettre en avant le fait qu'on est en train d'éditer un quizz ou pas
Tu veux dire sur la page de création ? Parce que sinon, il suffit de le documenter quelque part, si on ne différencie plus dans l'interface, genre dans le guide zmd et dans une astuce Markdown. Et si tu tiens à garder une page “quizz” à part, on pourrait ajouter une doc sous le bloc d'édition.
On pourrait aussi — ce serait plus pratique sans être idéal imo — ajouter une case à cocher « Activer le support des quizz dans cette section ». Mais je pense vraiment qu'on gagnerait à gérer ça de façon totalement transparente : on met un ou plusieurs blocs [[quizz]]
et basta. Le système se débrouille pour les grouper (pour avoir un seul bouton de validation par série) et c'est tout. Ce serait le top, d'un point de vue expérience utilisateur, autant pour l'auteur⋅trice que pour le lecteur⋅trice.
@artragis Est-ce que tu peux rebaser cette branche s'il te plait ? :)
- la branche a été rebase
- j'ai corrigé quelques erreurs dans le JS
- 'ai corrigé le conflit de migration
Je me dis que là on a un premier jet qui est proche de l'acceptable, à part peut être les TU?