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

ZEP-10 Module d'exercices #5405

Open
A-312 opened this issue Aug 12, 2019 · 12 comments · May be fixed by #5928
Open

ZEP-10 Module d'exercices #5405

A-312 opened this issue Aug 12, 2019 · 12 comments · May be fixed by #5928
Labels
C-Back Concerne le back-end Django C-Front Concerne l'interface du site S-Évolution Ajoute de nouvelles fonctionnalités

Comments

@A-312
Copy link
Contributor

A-312 commented Aug 12, 2019

Je propose ceci

[[q]]
| De quelle couleur est le cheval blanc de napoléon?

- () jais
- (x) blanc
- () orange
- () rose, comme toutes les licornes invisibles

[[q]]
| Qui gagne?

- [x] Superman
- [ ] San Goku (il me semble que j'ai mal orthographié, du moins j'espère)
- [x] Giratina
- [ ] Olivier Aton avec la catapulte infernale

Lorsque tu as une liste avec des () alors ça veut dire que les éléments de la liste sont des choix uniques.

Lorsque tu as une liste avec des [] alors ça veut dire que les éléments de la liste sont des choix multiples.

lorsque le symbole (()ou []) est vide alors ça veut dire que si le lecteur répond une de ces réponses elle sera considérées comme fausse.
si le symbole possède un x alors ça serait une bonne réponse.

Il suffira ensuite d'ajouter un bouton pour "valider le formulaire" et avec un petit script JS on compare les réponses données à celles attendues et on a les QCM/QCU qui sont implémentées.

Source:artragis

https://zestedesavoir.com/forums/sujet/822/zep-10-module-dexercices/?page=2#p172164

@StaloneLab
Copy link
Member

Deux remarques :

  • la seconde syntaxe est déjà utilisée pour rendre des listes cochables, on ne peut pas la réutiliser sans casser la compatibilité avec GFM, ce qui est une mauvaise idée ;
  • pourquoi deux syntaxes différentes ? On est parfaitement capables de gérer des choix simples et multiples de la même façon.

Je propose une syntaxe unique avec des parenthèses, sauf s'il y a une autre raison que j'ignore qui nécessite deux syntaxes.

@A-312
Copy link
Contributor Author

A-312 commented Aug 12, 2019

Comment gères-tu les questions multiples et simple ? (-> checkbox VS radio )

On ne peut pas annuler le disabled pour les [ ] ?

@StaloneLab
Copy link
Member

C'est pas du tout compliqué de switch en fonction du nombre de croix.

Théoriquement en peu, mais c'est une mauvaise pratique je dirais ; notre Markdown est censé être compatible GFM avec en plus des extensions ; si on commence à tout modifier à tout va, ça va vite devenir ingérable.

@artragis
Copy link
Member

ou simplement on garde la syntaxe GFM et on ajoute un visiteur qui viendra nous dire "hey, on a un formulaire et c'est la case X ou les case XYZ qui sont les bonnes. Avec du JS on remet tout à blanc puis on compare. y'a pas besoin de passer par le serveur pour avoir une note à un qcm.

@StaloneLab
Copy link
Member

J'aime bien l'idée ; c'est facile à faire mais ça implique qu'on perde la syntaxe de TODO list, j'aime pas trop ça.

@artragis
Copy link
Member

après si c'est que pour les quizz il suffit de n'activer ce visiter que dans certains cas. Comme pour le comptage des mots.

@StaloneLab
Copy link
Member

Justement : quand est-ce qu'on l'active ? Il faut bien une syntaxe pour définir quand ça se produit, non ?

@artragis
Copy link
Member

si on fait un module d'exercice, il suffit d'ajouter un nouveau "type" de rédaction en plus des section: les exercice et là on sait que le markdown qui est donné est un markdown d'exercice.

@A-312
Copy link
Contributor Author

A-312 commented Aug 13, 2019

C'est pas du tout compliqué de switch en fonction du nombre de croix.

Bonne idée ! Mais on laisse apparaître clairement que pour cette question, il n'y aura qu'un choix. :/

J'aime bien l'idée ; c'est facile à faire mais ça implique qu'on perde la syntaxe de TODO list, j'aime pas trop ça.

Si tu veux on partage la PR en deux, la partie ZMD et la partie ZDS-Site. Sachant que je suis gentil, je prend le plus compliqué, zds-site. 😝

J'aime bien l'idée ; c'est facile à faire mais ça implique qu'on perde la syntaxe de TODO list, j'aime pas trop ça.

Ce n'est pas possible d'ajouter une fonction middleware/router qui va tester si un bloque question est un parent de la liste/case a coché, et choisir quel module utiliser ?

@StaloneLab
Copy link
Member

StaloneLab commented Aug 13, 2019

Je ne contribue pas sur zds-site, donc le choix des parties est un peu biaisé 😄

C'est possible, mais je préfère de loin la suggestion d'@artragis, ça évitera qu'on se retrouve avec des exercices sur les forums par exemple ; c'est simple à gérer des deux côtés : la fonctionnalité n'est active que dans une section particulière d'un tuto / article / whatnot.

EDIT : il faut planifier ça pour la v28 ou je peux prendre mon temps et attendre la 29 ?

@A-312
Copy link
Contributor Author

A-312 commented Aug 13, 2019

Je ne contribue pas sur zds-site, donc le choix des parties est un peu biaisé 😄

Moi c'est l'inverse

EDIT : il faut planifier ça pour la v28 ou je peux prendre mon temps et attendre la 29 ?

Tu peux prendre ton temps :D

@artragis
Copy link
Member

cette fonctionnalité ne sera pas dans la v28 et elle n'est pas prioritaire pour la v29

@Situphen Situphen linked a pull request Sep 24, 2021 that will close this issue
9 tasks
@Situphen Situphen added C-Front Concerne l'interface du site C-Back Concerne le back-end Django S-Évolution Ajoute de nouvelles fonctionnalités labels Nov 28, 2022
@Arnaud-D Arnaud-D moved this to À trier in Suivi des tickets Dec 17, 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: À trier
Development

Successfully merging a pull request may close this issue.

4 participants