Les rapports des questions

Re: Les rapports des questions

par François Gagnon,
Nombre de réponses : 24

Bonjour Olivier,

C'est bien ce que je pensais, j'ai essayé plusieurs plugins, mais je n'ai pas trouvé celui qui me permettrait de réaliser ce tableau.. Dommage.

J'imagine que je pourrais lancer la requête SQL et sortir le tableau, mais ça risque de me prendre plusieurs heures ou même quelques jours pour y arriver. N'étant pas informaticien, ni programmeur, je ne maitrise pas les requêtes SQL. J'ai bien suivi un cours de SQL avec Openclassroom, mais je suis un peu rouillé et la base de donnée de Moodle possède beaucoup de tables. Mais je vais y réfléchir sérieusement.

Un grand merci Olivier d'avoir pris la peine de répondre à mon post.

Bonne journée,

En réponse à François Gagnon

Re: Les rapports des questions

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour François,

comme dit par Nicolas Martignoni, il existe des plugins très simples comme Ad-Hoc Database Query qui permet d'injecter des requêtes SQL dans Moodle. Après, pour la requête, je viens vite fait de tester la requête ci-dessous, qui a l'air de fonctionner (faut que j'apprenne à afficher une requête dans un joli cadre, y'a quelqu'un qui peut me dire comment faire ??) :

SELECT
quizc.name AS 'Catégorie',
count(qa.rightanswer) AS 'Nombre de bonnes réponses'
 
FROM mdl_quiz_attempts quiza
JOIN mdl_quiz q ON q.id=quiza.quiz
JOIN mdl_question_usages qu ON qu.id = quiza.uniqueid
JOIN mdl_question_attempts qa ON qa.questionusageid = qu.id
JOIN mdl_question que ON que.id = qa.questionid
JOIN mdl_user u ON u.id = quiza.userid
JOIN mdl_question_categories quizc ON que.category = quizc.id
 
WHERE q.name = "NOM_DE_VOTRE_TEST"
AND q.course = "ID_DU_COURS"
AND qa.rightanswer=qa.responsesummary

Par contre, cette requête va compter le nombre de bonnes réponses des étudiants pour toutes les questions de la catégorie donnée.
Dans votre demande, vous souhaitez avoir "le nom des catégories de questions et le nombre de questions réussies à l'intérieure de celle-ci". Mais le nombre de questions réussies n'a pas de sens, car cela dépend en fait des réponses des étudiants ! Je ne vois pas la pertinence du chiffre demandé, à moins que j'aie mal compris votre demande. pensif

Olivier

En réponse à Olivier Valentin

Re: Les rapports des questions

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles
Bonjour Olivier,

Pour obtenir le" joli cadre", on clique sur "Pré-formaté" de l'éditeur Atto.


ou on ajoute les balises <pre> texte  </pre>.

Christian
Moyenne des évaluations Utile (2)
En réponse à Olivier Valentin

Re: Les rapports des questions

par François Gagnon,

Bonjour Olivier,

Wow, je suis impressionné. Je vais l'essayer d'ici ce soir et je te reviens là-dessus.

Pour répondre à ta question, c'est pour une enseignante en français (je suis conseiller pédagogique chargé d'administrer Moodle pour la CSDN) et elle ne veut pas afficher les questions et les réponses. Elle voudrait seulement donner la rétroaction par catégorie afin de dire à ses élèves quelles sont leurs forces et leurs faiblesses. Par exemple, si c'est l'accord avec le verbe avoir qui pose problème à ses élèves, ou les noms, etc.

Merci encore et bonne journée,

FG

En réponse à François Gagnon

Re: Les rapports des questions

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

François > j'ai encore un peu de mal à saisir... est-ce que cela signifie que le tableau souhaité (nombre de bonnes réponses par catégorie) doit en réalité comporter une ligne par étudiant ? J'avais compris qu'on souhaitait avoir le résultat global des catégories, pas l'individuel...

En clair on aurait ceci :


Catég. 1
Catég. 2
Etudiant 1
x x
Etudiant 2
x
x

Olivier
En réponse à Olivier Valentin

Re: Les rapports des questions

par François Gagnon,

Salut Olivier,

Euh oui! C'est exactement cela. Je n'ai pas été suffisamment clair (désolé), mais oui j'aimerais que le tableau soit formaté pour permettre à l'enseignant de voir s'afficher chaque élève avec les catégories et le nombre de questions réussies/manquées par catégorie.

Précision sur le questionnaire :

Il s'agit d'un examen sommatif. L'élève ne doit pas voir quelles questions il a manqué, car il est en évaluation (il n'est plus en apprentissage, mais il doit démontrer ses connaissances). Cependant, l'enseignant désire quand même dire à l'élève quelles catégories de questions pose le plus de problème pour lui permettre de travailler davantage sur ses manquements en vue d'une reprise d'examen.

Merci encore pour ton aide précieuse et bonne journée,

FG

En réponse à François Gagnon

Re: Les rapports des questions

par François Gagnon,
Bonjour Olivier,
J'ai installé Ad-hoc databases Query, mais je ne sais pas où aller ensuite. J'ai fais pas mal le tour des rapports, des notes et je suis allé fouillé dans administration du site. J'ai juste besoin d'être un petit peu orienté pour tester l'outil.
Merci et bonne journée,
FG
En réponse à François Gagnon

Re: Les rapports des questions

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour François,

En tapant report_customsql (nom du plugin) dans le moteur de recherche de l'administration du site, on trouve le chemin suivant :
Administration du site  ► Rapports  ► Rapports personnalisés

puis vous pouvez ajouter une nouvelle requête.


Christian


En réponse à Christian Bocquet

Re: Les rapports des questions

par François Gagnon,

Bonjour Christian,

D'accord! Ça fonctionne grâce à votre aide.  Je vais pouvoir tester cet outil rapidement.

Merci pour l'information et bonne journée,

FG

En réponse à François Gagnon

Re: Les rapports des questions

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour François,

j'ai réussi à produire cette requête, mais vu mon niveau très rouillé en SQL, je n'arrive plus à produire directement le chiffre total à coté de chaque catégorie de question... Va falloir qu'un plus costaud que moi passe dans les parages ! sourire

En attendant, la requête ci-dessous, a minima, indique le nom de l'étudiant, son ID (pour éviter les doublons), le titre de la question à laquelle il a répondu juste et la catégorie de question d'appartenance. Après cela, un petit coup de traitement par Excel ou autre tableur devrait déjà un peu aider.

SELECT
    concat( u.firstname, " ", u.lastname ) AS "Etudiant",
    quiza.userid,
que.questiontext AS 'Question',
    quizc.name AS 'Catégorie'
 
FROM mdl_quiz_attempts quiza
JOIN mdl_quiz q ON q.id=quiza.quiz
JOIN mdl_question_usages qu ON qu.id = quiza.uniqueid
JOIN mdl_question_attempts qa ON qa.questionusageid = qu.id
JOIN mdl_question que ON que.id = qa.questionid
JOIN mdl_user u ON u.id = quiza.userid
JOIN mdl_question_categories quizc ON que.category = quizc.id
 
WHERE q.name = "NOM_DU_QUIZZ"
AND q.course = "ID_DU_COURS"
AND qa.rightanswer=qa.responsesummary

ORDER BY u.lastname, u.firstname, quizc.name ASC


Dans le WHERE, il suffit donc d'entrer l'ID du cours et le nom du quiz (afin de pouvoir se repérer s'il y a plusieurs quiz dans le cours).

Dans les champs récupérés, il y a le titre de la question, qui m'a servi pour mes tests. Il suffit de supprimer la ligne que.questiontext AS 'Question', pour ne plus la voir.

Comme dit, je sais qu'il y a sûrement moyen d'arriver à faire le total immédiatement, mais là, j'avoue bloquer un peu... En PHP, ça serait vite fait, mais direct en SQL, je sais pas trop faire !

Olivier


Moyenne des évaluations Utile (1)
En réponse à Olivier Valentin

Re: Les rapports des questions

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour Olivier,

J'ai fait un petit test avec simplement deux étudiants, et une seule tentative autorisée par étudiant, et ça a bien fonctionné.

Pour avoir le titre de la question, il faut mettre que.name AS 'Question', à la place de  que.questiontext AS 'Question',

Comme c'est un test d'évaluation les étudiants n'ont probablement droit qu'à une seule tentative. Est-ce que la requête fonctionne si on autorise plusieurs tentatives et que l'on prend la meilleure note ?

Chrstian

En réponse à Christian Bocquet

Re: Les rapports des questions

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Christian > merci de ta vigilance, j'avais oublié de le préciser !!!!!

Cette requête présuppose toutefois qu'il n'y ait effectivement qu'une seule tentative autorisée. En effet, comme la requête cherche toutes les bonnes réponses données dans un test par les étudiants, si on imagine qu'il y ait plusieurs tentatives, cela signifie de plus que les bonnes réponses seront comptabilisées plusieurs fois.

Pour mieux se rendre compte, on peut du coup rajouter le numéro de tentative 'quiza.attempt' dans les champs récupérés :

SELECT
    concat( u.firstname, " ", u.lastname ) AS "Etudiant",
    quiza.userid,
que.questiontext AS 'Question',
quiza.attempt,
    quizc.name AS 'Catégorie'
 
FROM mdl_quiz_attempts quiza
JOIN mdl_quiz q ON q.id=quiza.quiz
JOIN mdl_question_usages qu ON qu.id = quiza.uniqueid
JOIN mdl_question_attempts qa ON qa.questionusageid = qu.id
JOIN mdl_question que ON que.id = qa.questionid
JOIN mdl_user u ON u.id = quiza.userid
JOIN mdl_question_categories quizc ON que.category = quizc.id
 
WHERE q.name = "NOM_DU_QUIZZ"
AND q.course = "ID_DU_COURS"
AND qa.rightanswer=qa.responsesummary

ORDER BY u.lastname, u.firstname, quizc.name ASC
Il y a clairement plus simple à faire en SQL et plus direct, je pense... triste

Olivier

En réponse à Olivier Valentin

Re: Les rapports des questions

par François Gagnon,

Bonjour,

Je vous reviens sur le nombre de tentatives autorisées dans le courant de la journée. Je viens d'envoyer un courriel à l'enseignante pour lui demander.

Merci,

FG

En réponse à François Gagnon

Re: Les rapports des questions

par François Gagnon,

Bonjour Messieurs,

Je viens de recevoir la réponse de l'enseignante et, comme vous l'aviez déduit, l'élève n'aura droit qu'à une tentative seulement.

Un grand merci encore pour votre aide,

François Gagnon

En réponse à François Gagnon

Re: Les rapports des questions

par François Gagnon,

Salut Olivier,

Je viens de tester le script que tu as créé, mais en utilisant le script Ad-Hoc-Database-Query.

1- J'ai dû supprimer le suffixe mdl_ à toutes mes tables (j'avais un message d'erreur en ce sens).

2- Suite à cela, j'ai eu le message d'erreur que la table moodle.quiz_attempts n'existe pas. Je veux quand même préciser que nous sommes encore sur Moodle 3.2, la version n'a pas encore été upgradé. Peut-être est-ce la raison pour laquelle je reçois ce message d'erreur (voir l'image joint)? Qu'en penses-tu?

Merci encore et bonne journée,

Message d'erreur

En réponse à François Gagnon

Re: Les rapports des questions

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour François,

En fait, il ne fallait pas supprimer "mdl_" mais le remplacer par "prefix_" !

Séverin

En réponse à François Gagnon

Re: Les rapports des questions

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Avec Ad-Hoc-Database-Query, on peut écrire ainsi :

SELECT
concat( u.firstname, " ", u.lastname ) AS "Etudiant",
quiza.userid,
que.questiontext AS 'Question',
quiza.attempt,
quizc.name AS 'Catégorie'

FROM {quiz_attempts} quiza
JOIN {quiz} q ON q.id=quiza.quiz
JOIN {question_usages} qu ON qu.id = quiza.uniqueid
JOIN {question_attempts} qa ON qa.questionusageid = qu.id
JOIN {question} que ON que.id = qa.questionid
JOIN {user} u ON u.id = quiza.userid
JOIN {question_categories} quizc ON que.category = quizc.id

WHERE q.name = :parameter_name
AND q.course = :parameter_course
AND qa.rightanswer=qa.responsesummary

ORDER BY u.lastname, u.firstname, quizc.name ASC

:parameter_name sera le nom du test
:parameter_course sera l'identifiant du cours où se trouve le test

Christian

En réponse à Christian Bocquet

Re: Les rapports des questions

par François Gagnon,

Bonjour,

C'est super, mais lorsque j'exporte en CSV, j'ai des symboles ASSCII qui apparaissent et des balises étranges, etc. Bref, la mise en forme n'est pas géniale. Au pire, l'enseignante pourrait faire une copie d'écran. Mais au moins l'information me semble là, du moins en grande partie. Je vais montrer cela à mon enseignante, dès que j'ai une minute.

Merci et bonne journée,

François G

En réponse à François Gagnon

Re: Les rapports des questions

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonsoir,

Si vous le pouvez, vous ouvrez le fichier report au format CSV (avant ou après l'avoir téléchargé) avec OpenOffice Calc et dans la boîte de dialogue qui s'ouvre vous réglez les paramètres ainsi :


Il ne devrait plus rester que les balises <p> et </p>  et peut-être d'autres, balises qu'on pourrait éviter si on prenait le nom de la question plutôt que la question elle-même.

Christian

Moyenne des évaluations Utile (1)
En réponse à Christian Bocquet

Re: Les rapports des questions

par François Gagnon,

Salut Christian,

Super! C'est vrai que cela améliore beaucoup la mise en forme. Merci beaucoup pour cet excellent truc.

Bonne journée,

François G.

En réponse à Olivier Valentin

Re: Les rapports des questions

par François Gagnon,

Salut Olvier grand sourire

Je suis sans voie. Wow, wow, wow! En tout cas, si toi tu es rouillé en SQL, le miens est carrément mort, sourire.

C'est quand même très beau comme script. Je vais l'essayer d'ici demain.

Un grand merci,

FG

En réponse à François Gagnon

Re: Les rapports des questions

par François Gagnon,

J'ai demandé à l'enseignante de préciser son idée et d'expliquer davantage comment elle voit cela. Voici ce qu'elle m'a dit :


Le tableau devra montrer les résultats d’une seule étudiante. Aucune question, ni réponse ne devront y apparaitre. Seulement le résultat par catégorie et final.

Donc, voici l’info devant y apparaitre :

Nom de l’étudiante
Catégorie participes passés : 3/3 (3 questions sont attachées à cette catégorie)
Catégorie tout : 2/4
Catégorie accord du verbe : 1/3
Résultat final : 6/10

Ce tableau permettra à l’étudiante de voir ses faiblesses et forces par catégories afin d’améliorer son prochain résultat.


Voilà la demande complète. Merci pour votre aide. Bonne journée.

FG