Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intégration de la possibilité de faire des quizz #5928

Open
wants to merge 21 commits into
base: dev
Choose a base branch
from

Conversation

artragis
Copy link
Member

@artragis artragis commented Sep 20, 2020

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

  • attendre le merge de la refonte graphique
  • fixer le soucis de fusion de la dernière réponse et de l'éventuelle correction
  • documentation, notamment pour préparer les évolutions
  • nettoyage du code pour le rende plus lisible, notamment sur le js
  • styling statistiques (alignement réponse/jauge)
  • réduire la page de sats pour les quizz
  • Injecter un texte pour dire que la réponse est bonne/fausse lors de la phase de correction
  • Injecter un texte "Félicitations vous avez bien répondu" ou "Malheureusement vous n'avez pas trouvé la bonne réponse"
  • Calculer et afficher le %age de réussite

@artragis artragis marked this pull request as draft September 20, 2020 16:39
@artragis
Copy link
Member Author

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

poc_quizz

Copy link

@Nek- Nek- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feature qui tue. J'imagine que c'est un gros WIP mais juste au cas où, dans ma wish list pour cette feature y'a "explication de la question".

@artragis
Copy link
Member Author

artragis commented Sep 21, 2020

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.

@artragis
Copy link
Member Author

artragis commented Sep 27, 2020

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

Remontée

Comment passer du POC au travail final?

Voir le post original

Copy link
Member

@Situphen Situphen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quelques commentaires sur la forme qui ne sont pas très importants pour l'instant mais j'ai peur d'oublier de revenir sur cette PR avant sa fusion :)

zds/tutorialv2/views/statistics.py Outdated Show resolved Hide resolved
templates/tutorialv2/view/content.html Outdated Show resolved Hide resolved
templates/tutorialv2/view/container.html Outdated Show resolved Hide resolved
templates/tutorialv2/includes/child.part.html Outdated Show resolved Hide resolved
templates/tutorialv2/create/extract.html Outdated Show resolved Hide resolved
templates/tutorialv2/create/extract.html Outdated Show resolved Hide resolved
templates/tutorialv2/create/extract.html Outdated Show resolved Hide resolved
templates/misc/quizz.graph.part.html Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
@coveralls
Copy link

coveralls commented Dec 19, 2020

Coverage Status

Coverage decreased (-0.2%) to 88.146% when pulling 7961f52 on artragis:poc_quizz into 5c971b5 on zestedesavoir:dev.

@artragis
Copy link
Member Author

artragis commented Jan 1, 2021

Après normalisation du CSS, (mais avant l'application du nouveau zmd), ça donne ça :

Avant de répondre
image

Après réponse
image

Les stats
image

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

@artragis
Copy link
Member Author

artragis commented Jan 1, 2021

Évidemment, capture sans l'inspecteur :
image

@artragis artragis changed the title [WIP][POC]Intégration de la possibilité de faire des quizz [WIP]Intégration de la possibilité de faire des quizz Jan 1, 2021
@AmauryCarrade
Copy link
Member

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.

Résultats d'un quizz avec de la mise en forme

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.

@artragis
Copy link
Member Author

artragis commented Jan 3, 2021

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.

@AmauryCarrade
Copy link
Member

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.

@Situphen
Copy link
Member

@artragis Est-ce que tu peux rebaser cette branche s'il te plait ? :)

@Situphen Situphen linked an issue Sep 24, 2021 that may be closed by this pull request
@artragis artragis added the S-Zombie Ticket ou PR oubliée label Jul 25, 2022
@artragis
Copy link
Member Author

  • 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?

@artragis artragis changed the title [WIP]Intégration de la possibilité de faire des quizz Intégration de la possibilité de faire des quizz Oct 30, 2022
@artragis artragis marked this pull request as ready for review October 30, 2022 20:25
Copy link
Member

@Situphen Situphen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai parcouru un peu tes modifications donc voici quelques remarques. Cela dit, ce n'est pas exhaustif, je n'ai pas regardé en détail le fonctionnement du code, je suis resté plutôt sur la forme pour l'instant !

doc/source/back-end/quizz.rst Outdated Show resolved Hide resolved
doc/source/back-end/quizz.rst Outdated Show resolved Hide resolved
doc/source/back-end/quizz.rst Outdated Show resolved Hide resolved
doc/source/back-end/quizz.rst Outdated Show resolved Hide resolved
doc/source/back-end/quizz.rst Outdated Show resolved Hide resolved
templates/misc/quizz.graph.part.html Outdated Show resolved Hide resolved
assets/js/content-quizz.js Outdated Show resolved Hide resolved
assets/js/content-quizz.js Outdated Show resolved Hide resolved
@artragis artragis added C-Front Concerne l'interface du site C-Back Concerne le back-end Django S-Évolution Ajoute de nouvelles fonctionnalités and removed S-Zombie Ticket ou PR oubliée labels Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django C-Front Concerne l'interface du site S-Évolution Ajoute de nouvelles fonctionnalités
Projects
Status: En développement
Development

Successfully merging this pull request may close these issues.

ZEP-10 Module d'exercices
5 participants