Envoi de certification à un logiciel tiers

Envoi de certification à un logiciel tiers

par Benoit Bonnard,
Nombre de réponses : 19

Bonjour à tous,


Nouveau sur cette plateforme et malgré mes recherches, je ne trouve pas de solution à ma problématique.


Je voudrai avec Moodle pouvoir créer un fichier de type csv quand un étudiant a fini son test.

Ce fichier doit pouvoir être créé automatiquement et positionné dans un répertoire local du serveur Moodle. Ce csv doit avoir certaines informations (par exemple: nom d'utilisateur, resultat: Fail ou Pass, et autres champs personnalisés)

J'ai beau chercher, je ne trouve aucune information à ce sujet (ou alors je cherche au mauvais endroit sourire )


Si quelqu'un peut m'aider là dessus ...

Merci beaucoup par avance sourire


Moyenne des évaluations  -
En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

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

Bonjour Benoît,

Je pense que tu commets une erreur classique : tu essaies de trouver une solution à une problématique représentant une possible solution à ta problématique réelle.

Quelle est ta problématique réelle, au final ?

Tu parles de certification, quel est le logiciel incriminé, qu'est-ce qui doit être fait exactement ? A quel rythme, et avec quel délai les certifications doivent être disponibles ?

Séverin

En réponse à Séverin Terrier

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Bonjour,

en fait j'ai un logiciel qui gère les droits d'accès à certaines machines.

Ce droits sont basés sur un "certificat", ces certificats ont une date d'échéance forçant ainsi l'utilisateur à effectuer un e-learning + un test de validation.

Ce e-learning et ce test sont sur Moodle.

Mon logiciel de gestion d'accès aux machine est capable de lire un fichier csv contenant l'ID de l'utilisateur, le nom du certificat et la valeur Pass/Fail en fonction de la réussite ou non au test.

Mais ce fichier doit être créé par Moodle.

Est-il donc possible avec Moodle de créer ce fichier à fin de tentative de Test ?

Exemple:

Albert a suivi le e-learning sur Moodle et a fait le test. Le test une fois terminé, Moodle crée automatiquement un fichier csv contenant:

ligne 1: Utilisateur [TAB] certificat [TAB] Result

ligne 2: Albert [TAB] Machine1 [TAB] Pass (ou Fail en fonction)


ce fichier est avalé par mon logiciel et réactive ou non les droits d'Albert à utiliser la Machine1


Merci.

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

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

Merci pour ces précisions.

Est-il impératif que l'information de réussite du test de l'apprenant soit envoyée immédiatement après le test ? Est-ce qu'un traitement chaque nuit (par exemple) serait suffisant (ou envisageable) ?

Ce qui est certain, c'est que Moodle ne propose pas cela en standard. En informatique, tout est possible, à condition de s'en donner les moyens (au pire, payer un partenaire Moodle pour effectuer les développements nécessaires).

Je pense qu'il doit être possible relativement facilement de créer une requête personnalisée qui permettrait d'extraire les informations souhaitées. Voir les plugins block_configurable_reports et report_customsql, ainsi qu'une liste d'exemples de requêtes.

Séverin

En réponse à Séverin Terrier

Re: Envoi de certification à un logiciel tiers

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Benoît,

En l'absence de plugin existant, il faut créer ta propre requête et l'exécuter régulièrement. Il existe des sites qui expliquent comment exécuter une requête sql et stocker les résultats dans un fichier csv.

En réponse à Jean-Gabriel DEPINOY

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Bonjour,


Merci pour vos réponses, je vais m'y pencher.

Euh .. dernière chose, comment me connecter à la base SQL ? il y a un loggin/mdp root ?


Merci


En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Benoit,... Euh, ou alors c'est Benoit ton prénom ?! incertain

Tu trouveras ces identifiants dans le fichier config.php situé à la racine de ton instance Moodle.

À bientôt Benoit... Euh... ou Benoit,
Patrick

En réponse à Patrick Lemaire

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Bonjour,

Merci pour l'information, je vais regarder... je vous tiens au courant si j'arrive à quelque chose.

Benoit Benoit !! :p

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Benoit,

Subtilement, Patrick tentait (en vain semble-t-il) de vous rappeler que dans cette communauté, on préfère traiter avec des humains, et que le fait de s'appeler par nos prénoms et noms plutôt qu'utiliser des pseudos facilite la communication entre personnes civilisées sourire

Merci de penser à indiquer vos véritables prénom et nom, et mes excuses se tous les deux sont "Benoit".

Moyenne des évaluations Utile (1)
En réponse à Nicolas Martignoni

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Ah oui, désolé, je n'y étais pas !! sourire

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Re bonjour !!


bon, voilà où j'en suis, j'ai fait une requête SQL qui me remonte 3 informations, mais je ne sais pas vraiment à quoi correspondent chaque champs.


SELECT mdl_quiz_attempts.preview, mdl_user.username, mdl_course.shortname
FROM mdl_quiz_attempts
 JOIN mdl_user ON mdl_quiz_attempts.userid=mdl_user.id
 JOIN mdl_quiz ON mdl_quiz_attempts.quiz=mdl_quiz.id
 JOIN mdl_course ON mdl_quiz.course=mdl_course.id


Quelle est la valeur à retourner pour savoir si un test a été réussi ou échoué ?


Merci à vous !!


En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Re,


j'en suis à mon script ... en VBS.

j'utilise un ODBC: MySQL ODBC 8.0 Unicode Driver

mais mon scrit me dit qu'il n'a pas les droit d'acces à la base de données ... je ne suis pas sûr d'utiliser le bon driver ODBC ...


Con.Open "DRIVER={MySQL ODBC 8.0 Unicode Driver};DATABASE=moodle;SERVER=localhost;",USER_DB,PWD_DB


Merci sourire

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Benoit clin d’œil

Il faudrait que tu nous en dises plus sur ton installation ! Quelle version de Moodle ? Quelle serveur ?

Tu peux t'inspirer de cette exemple : https://moodle.org/mod/page/view.php?id=8249

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Bonjour,


il s'agit de la version Moodle 3.5.2 sur un serveur Windows 2012 R2.

Ma problématique:

récupérer l'information "Examen réussi" ou "Examen Echoué", le nom d'utilisateur, le nom du cours. Mettre ces informations dans un fichier csv.


Là où j'en suis:

J'ai créé un Script avec lequel j'arrive à me connecter sur la base de donnée, récupérer des informations et créer mon fichier csv.


Mon soucis actuel:

définir si un examen est réussi ou pas. (Quelle table, quel champs etc ...)

Comme mon script ne peut pas se lancer à chaque fin d"examen, il va falloir que je le lance en tache planifiée (toutes les x minutes) et qu'il sache si un examen a déjà été traité par mon script ou pas. Pour cela je pense ajouter un champs dans une table de la base de données en mettant "Traité" avec des valeurs 1 ou 0, ou alors en mettant une date+heure au format Unix si il a déjà été traité.


Bien cordialement

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour Benoît,

D'après votre message initial, l'examen est un test (activité test). En supposant qu'il soit noté et pour que l'examen soit réussi, vous pouvez définir dans les paramètres du test une note pour passer.

Pour que l'activité soit achevée (et alors considérée comme réussie) pour un étudiant, dans les paramètres de l'achèvement d'activité, vous pouvez choisir Afficher l'activité comme terminée dès que les conditions sont remplies et cocher la case correspondant à Les étudiants doivent recevoir une note pour terminer cette activité et la case correspondant à Requiert la note de passage.

Ensuite dans la base de données, vous cherchez la table course_modules_completion et dans cette table les lignes de votre test (champ coursemoduleid ). Dans ma copie d'écran ci-dessous, le module de mon test a pour identifiant 143. L'étudiant ayant pour identifiant 4 a achevé, donc réussi le test, car la valeur de completionstate vaut 2.


Christian

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

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Merci pour ces infos ... je vous tiens au courant.

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

Bonjour,


alors voilà où j'en suis.

J'ai créé un script en VBS qui regarde dans la table mdl_quiz_attempts les entrées.

J'ai ajouté une colonne dans cette table: Processed pour définir si mon script a déjà traité cette entrée ou pas. Je ne traite alors que les entrées non déjà taitées.


Mon script crée un fichier csv formaté selon mes besoins.


Je vous mets mon script dans ma réponse. Ma programmation est ce qu'elle est ... mais je suis ouvert aux améliorations !! sourire


PS: en relisant mon script il faudrait que je trie aussi en fonction de l'état du test pour ne pas prendre en compte ceux qui sont "en cours" ... pas encore fait.



En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour,

Pour le script je ne peux pas vous aider.

Pour le PS, si un test est "en cours", le test ne sera donc pas achevé et la valeur du champ completionstate ne sera pas 2 (encore à la valeur 1 je pense).

Christian

En réponse à Christian Bocquet

Re: Envoi de certification à un logiciel tiers

par Benoit Bonnard,

un truc que je ne comprends pas


mon utilisateur Test a terminé le module de cours et le module de test

Dans la table course_modules_completion:

- id 8 est à l'état 2 (c'est le test)

- id 7 est à l'état 1 (c'est un cours Scorm qu'on peut marqué comme terminé manuellement)

=> pourquoi 1 ?


ensuite, dans la table course_completions: il n'y a rien.

cette table ne sert-elle pas à vérifier l'achèvement du cours en entier (cours + test) ?


Merci.

En réponse à Benoit Bonnard

Re: Envoi de certification à un logiciel tiers

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles
  • Pourquoi 1 ?

Après test, je constate effectivement que le champ completionstate reste à 1 quand le professeur marque manuellement l'activité comme achevée. Mais dans ce cas le champ overrideby  passe de NULL à l'identifiant du professeur qui a marqué manuellement l'activité comme achevée.

  • table course_completions ?
J'ai constaté également que cette table était d'abord vide (pour un cours donné et un utilisateur ayant juste achevé le cours). Il faut attendre le lancement de la tâche programmée Calcul des données d'achèvement - \core\task\completion_regular_task pour que les lignes correspondantes apparaissent dans cette table. Je pense (sans garantie, à vérifier) que c'est le champ timecompleted passant de la valeur NULL à la date d'achèvement (au format timestamp) qui permet d'indiquer dans cette table que le cours est achevé pour un utilisateur donné.


Christian