Envoi des sujets par AMC (Bug #713)
Description
Bonjour,
avec cette situation de confinement, je relance mon idée d'envoi des sujets par AMC de façon automatique comme pour les corrections.
Related issues
duplicates Feature #711: Emailing tests to solve @home | Closed | 03/10/2020 |
History
Updated by Alexis Bienvenüe over 4 years ago
Cette fonctionnalité vient de faire son entrée dans la version de développement (git:3a26f34c654 ou 1.4.0+git2020-03-29-1 sur launchpad) : à vos tests !
Vous devez utiliser la pré-association et imprimer le sujet dans des fichiers avant de pouvoir envoyer ces fichiers aux étudiants dont les adresses électroniques sont indiquées dans le fichier CSV contenant la liste des étudiants.
- Category deleted (
Graphical Interface) - Status changed from New to Feedback
- Priority changed from Urgent to Normal
Updated by Frédéric Bréal over 4 years ago
Merci.
Updated by Joël Brogniart over 4 years ago
Est-ce que cette option est accessible avec des fichiers au format AMC-TXT ?
Updated by Alexis Bienvenüe over 4 years ago
Est-ce que cette option est accessible avec des fichiers au format AMC-TXT ?
Pas pour l'instant car cela ne marche qu'avec la pré-association.
Updated by Alexis Bienvenüe over 4 years ago
Est-ce que cette option est accessible avec des fichiers au format AMC-TXT ?
Ça devrait marcher avec la version git:8015fff0d22640 / 1.4.0+git2020-03-30-1
Fichier CSV liste.csv
dans le répertoire projet :
nom,prenom,id,email Avogadro,Amedeo,1776,aa@example.com Bohr,Niels,1885,nb@example.com Copernic,Nicolas,1473,nc@example.com Einstein,Albert,1879,ae@example.com
Options AMC-TXT :
PreAssociation: liste.csv PreAssociationKey: id PreAssociationName: \prenom{} \nom{}
Updated by Frédéric Bréal over 4 years ago
Je viens de finir la doc pour latex (pas encore alsocorrect et keepas)
Je vais ajouter les options pour AMC-txt et tester dès la mise à jour du ppa.
Updated by Joël Brogniart over 4 years ago
Est-ce que cette option est accessible avec des fichiers au format AMC-TXT ?
Alexis Bienvenüe wrote:
Ça devrait marcher avec la version git:8015fff0d22640 / 1.4.0+git2020-03-30-1
[...]
Wouaou, impressionnant. Après avoir lu la doc, et les exemples latex, je me suis dit que ça serait peut-être compliqué d'ajouter ça pour le format AMC-TXT. C'était déjà bien d'avoir cette fonctionnalité avec Latex. Bravo et merci pour le boulot. Je vais tester ça.
Updated by Joël Brogniart over 4 years ago
J'ai un petit problème. Avec les données indiquées et le nombre de copies mis à 4.
Lorsque je fais la mise à jour des documents, quand je regarde le document "Correction individuelle" j'ai des trucs bizzares.
- J'ai 4 exemplaires du sujet pour le premier étudiant, 4 pour le suivant… Le chiffre x indiqué dans le nombre de copies génère x sujets par étudiant du fichier csv.
- Pour chacun des 4 exemplaires, le nom de l'étudiant est bien indiqué dans la case du nom de la page Réponse, mais les cases du numéro de l'étudiant ne sont pas cochées.
Remarques complémentaires.
- Le fichier indiqué avec PreAssociation dans le source AMC-TXT doit être à nouveau sélectionné dans la zone "Imprimer" avec le bouton "List…" (d'ailleurs "List" est en anglais.
- Il serait bien qu'il y ait aussi une option PreAssociationEmail
pour indiquer le nom du champ contenant l'adresse électronique.
Updated by Alexis Bienvenüe over 4 years ago
En pré-association, il faut laisser le nombre de copies a zéro.
Updated by Alexis Bienvenüe over 4 years ago
mais les cases du numéro de l'étudiant ne sont pas cochées.
Et ne pas utiliser de codage du numéro d'étudiant (par ailleurs c'est inutile car les copies sont déjà associées).
Remarques complémentaires.
Le fichier indiqué avec PreAssociation dans le source AMC-TXT doit être à nouveau sélectionné dans la zone "Imprimer" avec le bouton "List…"
Oui c'est pertinent : j'essayerai d'y penser prochainement.
Il serait bien qu'il y ait aussi une option PreAssociationEmail pour indiquer le nom du champ contenant l'adresse électronique.
Moins utile à mon avis, car la bonne colonne est choisie automatiquement en général
Updated by Frédéric Bréal over 4 years ago
En pré-association, il faut laisser le nombre de copies a zéro.
Je vais rajouter cette remarque.
Et ne pas utiliser de codage du numéro d'étudiant
Vous parlez de AMCcode
?
" (d'ailleurs "List" est en anglais.
les fichiers pot et fr.po ne sont pas à jour.
Le faîtes-vous Alexis ?
Updated by Alexis Bienvenüe over 4 years ago
Vous parlez de AMCcode ?
Oui c'est ça.
les fichiers pot et fr.po ne sont pas à jour.
Le faîtes-vous Alexis ?
Je vais m'en occuper en effet.
Updated by Joël Brogniart over 4 years ago
Avec le nombre de copies à zéro, j'ai bien un exemplaire par étudiant.
Autre petit soucis.
Après avoir effectué la mise à jour des documents et calculé la mise en page, lorsque je clique sur "Imprimer des copies", sélectionne toutes les copies et clique sur "Valider" j'ai droit au message "Vous n'avez sélectionné que quelques copies à imprimer. Allez vous photocopier…" alors que j'ai bien sélectionné toutes les copies. Peut-être une comparaison du nombre de copies sélectionnées avec le zéro du nombre de copies indiqué plus haut. Peut-être faudrait-il qu'après l'appui sur le bouton "Mettre à jour les documents", un champ "Nombre d'étudiants" apparaissent avec le nombre d'étudiants du fichier CSV (pas le top au niveau interface). Et ensuite la comparaison du nombre de copies sélectionnées pour l'impression se fasse avec ce nombre d'étudiants.
Updated by Alexis Bienvenüe over 4 years ago
Peut-être une comparaison du nombre de copies sélectionnées avec le zéro du nombre de copies indiqué plus haut.
C'est juste une comparaison avec 10. Si vous avez plus de 10 étudiants, il n'y aura pas cet avertissement.
Il faut que j'adapte quand le nombre de copies est faible, pour éviter cet effet déstabilisant.
Updated by Joël Brogniart over 4 years ago
Encore un petit soucis.
Ma liste d'étudiants contient 10 étudiants. AMC a bien généré 10 fichiers, mais l'envoi du courrier n'envoie que vers 9 étudiants. On dirait que le dernier est oublié.
Updated by Alexis Bienvenüe over 4 years ago
Et son message après l'envoi, c'est "10 messages envoyés", ou 9 ? Fichier log en mode débogage ?
Updated by Joël Brogniart over 4 years ago
Le message après l'envoi est "9 messages envoyés.". Et voici le journal correspondant à un envoi.
- File AMC-DEBUG-i8lrlaBp.log added
Updated by Alexis Bienvenüe over 4 years ago
Est-ce qu'il y avait bien 10 lignes dans la fenêtre du choix des sujets à envoyer, avec des adresses électroniques, et est-ce que vous en avez bien sélectionné 10 ?
Updated by Joël Brogniart over 4 years ago
Oui et oui. En lisant le journal, j'ai l'impression que le problème provient du fichier des IDs généré.
[ 20803, 0.21] provided IDS: [ 20803, 0.21] [2060321] [ 20803, 0.21] [2040654] [ 20803, 0.21] [2050963] [ 20803, 0.21] [2080852] [ 20803, 0.22] [2020456] [ 20803, 0.22] [2050147] [ 20803, 0.22] [2010789] [ 20803, 0.22] [2030369] [ 20803, 0.22] [2040741] [ 20803, 0.22] Create progression pipe for <mailing> up to 1
Il en manque un. Je pensais qu'il y avait un problème avec l'adresse du dernier étudiant et j'ai inversé les deux dernières lignes pour vérifier, mais c'est toujours le dernier qui n'est pas envoyé. J'essaie de fouiller le code aussi pour voir quand est généré ce fichier.
Updated by Joël Brogniart over 4 years ago
La source du problème a l'air d'avoir lieu à l'étape "Calculer les mises en pages". Avant cette étape, dans la base data/layout.sqlite
, les tables layout_association
et layout_namefield
sont vides mais après le calcul, la table layout_association
ne contient que 9 entrées et la table layout_namefield
contient 10 entrée.
Updated by Alexis Bienvenüe over 4 years ago
Pouvez-vous poster le fichier source et le fichier de noms que vous utilisez ?
Updated by Joël Brogniart over 4 years ago
- File etudiants.csv added
- File source.txt added
Updated by Joël Brogniart over 4 years ago
Joël Brogniart wrote:
La source du problème a l'air d'avoir lieu à l'étape "Calculer les mises en pages". Avant cette étape, dans la base
data/layout.sqlite
, les tableslayout_association
etlayout_namefield
sont vides mais après le calcul, la tablelayout_association
ne contient que 9 entrées et la tablelayout_namefield
contient 10 entrée.
En fait c'est avant. dans la phase prépare (appui sur le bouton "Mettre à jour les documents". Dans cette phase est généré le document "DOC-calage.xy" (qui sert à rempli la base ultérieurement). Dans ce document, ne sont présents que les 9 premiers numéros d'étudiants;
Updated by Frédéric Bréal over 4 years ago
Est-il possible de paramétrer AMC pour que le dossier d'impression soit le dossier courant ?
Merci
Updated by Alexis Bienvenüe over 4 years ago
En fait c'est avant. dans la phase prépare
Oui en effet. Cela va être corrigé dans la prochaine version en cours de préparation.
Updated by Joël Brogniart over 4 years ago
Ouf, parce que là j'étais perdu dans les méandres d'amc.sty, des macro latex… J'allais attaquer le cvsreader. J'approchais petit à petit mais c'était laborieux.
Updated by Frédéric Bréal over 4 years ago
\begin{macro}{\AMCstudentslistfile} % You can also pass AMC the path to the CSV file with students, and % the unique key that can be used, with % |\AMCstudentslistfile|\marg{path}\marg{key}.
Est-ce que c'est à documenter ou un code « invisible » pour l’utilisateur ?
Updated by Alexis Bienvenüe over 4 years ago
Est-ce que c'est à documenter ou un code « invisible » pour l’utilisateur ?
Ce n'est pas très intéressant à documenter à mon avis. Je l'utilise pour le cas particulier AMC-TXT, mais autrement ça n'apporte pas forcément grand chose d'entrer les informations avec cette commande plutôt que dans l'interface.
Updated by Frédéric Bréal over 4 years ago
D'accord.
Ce que j'ai envoyé doit être caduque
En pré-association, il faut laisser le nombre de copies a zéro.
Sur le code, je crois comprendre que vous forcez à mettre 0 dans la GUI en AMC-txt
Le fichier indiqué avec PreAssociation dans le source AMC-TXT doit être à nouveau sélectionné dans la zone "Imprimer" avec le bouton "List…"
Pareil, j'avais noté la démarche.
J'attends le upload sur le PPA pour vérifier et modifier si besoin.
Updated by Alexis Bienvenüe over 4 years ago
En effet, suite au retours, j'ai essayé d'améliorer l'utilisation.
Sur le code, je crois comprendre que vous forcez à mettre 0 dans la GUI en AMC-txt
Oui
Pareil, j'avais noté la démarche.
Maintenant la transmission est automatique effectivement.
Updated by Frédéric Bréal over 4 years ago
Bonjour,
la nouvelle version présente un bug important pour le mode prérempli avec AMC-txt.
Le logiciel ne détecte pas du premier coup l'identifiant.
Une vidéo https://www.swisstransfer.com/d/c4ecfe88-3a3f-4a7d-aedc-dde5e922d69b et le log joint.
Je vais tester en mode latex.
- File AMC-DEBUG-WpCBtBB7.log added
Updated by Frédéric Bréal over 4 years ago
avec latex cela fonctionne.
Updated by Alexis Bienvenüe over 4 years ago
la nouvelle version présente un bug important pour le mode prérempli avec AMC-txt.
Merci pour ce retour. Pouvez-vous essayer en intégrant la modification suivante ?
https://gitlab.com/jojo_boulix/auto-multiple-choice/-/commit/f6680c98c04fb3ac06f6a98061a5153d215acaee
Updated by Joël Brogniart over 4 years ago
Pour moi, avec la dernière version, tous les courriers sont envoyés et en plus ils sont tous arrivés. Merci beaucoup.
Updated by Joël Brogniart over 4 years ago
Euh, une petite question. Est-ce que les PDF générés sont censés avoir des cases cliquables ?
Updated by Alexis Bienvenüe over 4 years ago
Est-ce que les PDF générés sont censés avoir des cases cliquables ?
Si vous utilisez l'option pdfform
, ce devrait être le cas.
Updated by Frédéric Bréal over 4 years ago
- Alexis : ça fonctionne
- Joël : il faut utiliser
PackageOptions:pdfform
Updated by Joël Brogniart over 4 years ago
Ça marche mieux avec PackageOptions !
Les copies partent bien par courrier et arrivent chez le destinataire. Le destinataire peut les remplir et le renvoyer.
Par contre j'ai l'impression qu'il y a petit problème à la reconnaissance. Les copies sont bien identifiées, mais on dirait que la réponse à la première question de chaque page n'est pas reconnue (voir image de l'original et de la copie affichée lorsque clique sur le bouton "Manuelle".
En fait c'est plus compliqué que ça. Des fois la case cochée est reconnue. Je joins le journal de la reconnaissance automatique.
- File original-pdf.png added
- File reconnaissance.png added
- File AMC-DEBUG-tshpXS_K.log added
Updated by Joël Brogniart over 4 years ago
J'ai mis le dossier du projet avec les originaux des réponses sur Firefox send (disponible 1 jour pour 1 seul téléchargement) au cas où.
Lien : https://send.firefox.com/download/1c334708a075fed7/#NMm-R9GTjHQS-UJrS5F8Jg
Updated by Frédéric Bréal over 4 years ago
L'avertissement dont parlait Joël a complètement disparu. Est-ce normal ?
Updated by Joël Brogniart over 4 years ago
Bon, j'ai fouillé un peu plus dans les résultats bizarres lors de la reconnaissance.
Si je prends le premier sujet rempli.
Cases cochée sur le sujet (entre parenthèse, le numéro de la question et le numéro de la réponse dans le fichier source) :
Page 1, question 1, réponse 1 (phys10, 2) - non reconnue
Page 1, question 2, réponse 2 (phys02, 3) - reconnue
Page 1, question 3, réponse 3 (phys03, 2) - reconnue
Page 1, question 4, réponse 4 (phys08, 4) - reconnue
Page 2, question 5, réponse 1 (phys06, 3) - non reconnue
Page 2, question 6, réponse 2 (phys04, 3) - reconnue
Page 2, question 7, réponse 3 (phys09, 2) - reconnue
Page 2, question 8, réponse 4 (phys01, 4) - reconnue
Page 2, question 9, réponse 1 (phys05, 3) - reconnue
Page 2, question 10, réponse 2 (phys07, 2) - reconnue
Page 2, question 11, réponse 3 (cata10, 2) - reconnue
Page 3, question 12, aucune réponse (cata09, ) - reconnue
Page 3, question 13, réponse 1 (cata04, 2) - reconnue
Page 3, question 14, réponse 2 (cata03, 2) - reconnue
Page 3, question 15, réponse 3 (cata05, 1) - reconnue
Page 3, question 16, réponse 1 (cata01, 2) - reconnue
Page 3, question 17, réponse 2 (cata06, 1) - reconnue
Page 3, question 18, réponse 3 (cata02, 1) - reconnue
Page 3, question 19, réponse 1 (cata07, 1) - reconnue
Page 3, question 20, réponse 2 (cata08, 3) - reconnue
Je ne vois pas ce qui peut provoquer la non reconnaissance pour 2 des questions.
Pour aller un peu plus loin j'ai utilisé le script perl suivant pour rechercher les données de formulaire dans les fichiers pdf.
use strict; use warnings; use Data::Dump 'pp'; use CAM::PDF; #my $pdf_path = 'copie-0001.pdf'; my $pdf_path = 'sujet-rempli.pdf'; my $pdf = CAM::PDF->new($pdf_path); my @formfields = $pdf->getFormFieldList(); foreach (@formfields){ my $obj = $pdf->getFormField($_); #pp $obj; printf "%s = %s\n",$_,$obj->{value}{value}{V}{value}; }
Quand j'utilise le script sur le premier sujet rempli, j'obtiens des lignes de données de la forme
1:case:phys10:1,2 = Off
Il y a 700 lignes dans le fichier résultat. Toutes les lignes commençant par le chiffre 1 (les 20 premières) contiennent correctement "= Yes" lorsque la case est cochée. Donc apparemment les données sur les cases cochées sont bien inclues dans le sujet qui a été saisi par l'étudiant. Par contre je ne sais pas à quoi correspondent les 680 lignes supplémentaires qui apparaissent dans le résultat. Lorsque j'utilise le script sur le fichier généré par AMC (avant remplissage), j'obtiens aussi 700 lignes mais toutes avec "= Off".
Updated by Joël Brogniart over 4 years ago
Apparemment le problème est, au moins en partie, dans le code de pdfformfields.c
.
Si j'applique l'utilitaire au fichier du sujet 1, j'obtiens le résultat du fichier joint (pollux.adjara-pdfformfields-data.txt
). Dans ce fichier, il manque le séparateur "---" à deux endroit et la première des deux questions qui ne sont pas séparées est ignorée.
Lignes 90 à 101
--- FieldType: Button FieldName: 1:case:phys10:1,2 FieldValue: Yes FieldStateOption: Off FieldStateOption: Yes FieldType: Button FieldName: 1:case:cata10:11,2 FieldValue: Yes FieldStateOption: Off FieldStateOption: Yes ---
Lignes 251 à 262
--- FieldType: Button FieldName: 1:case:phys06:5,3 FieldValue: Yes FieldStateOption: Off FieldStateOption: Yes FieldType: Button FieldName: 1:case:cata08:20,1 FieldValue: Off FieldStateOption: Off FieldStateOption: Yes ---
- File pollux.adjara-pdfformfields-data.txt added
Updated by Joël Brogniart over 4 years ago
J'ai trouvé.
Le problème est bien dans pdfformfields.c
. Le séparateur de questions n'était pas imprimé après la dernière entrée de formulaire d'une page (qui correspond à la première case de la première question de la page). Du coup cette case n'était pas prise en compte dans AMC-read-pdfform.pl
. Cette case était donc toujours considérée comme non cochée.
J'ai testé une modification de pdfformfields.c
avec les données de mon projet de test et tout est rentré en ordre. Toutes les cases des formulaires sont correctement reconnues.
Je joins le patch @@ avec mes modifications.
- File pdfformfields.c.patch added
Updated by Alexis Bienvenüe over 4 years ago
Patch intégré dans la modification git:8b05a15f : merci !
Updated by Joël Brogniart over 4 years ago
Youpie !
Merci à vous, je me suis planté quand j'ai tenté de faire un merge request
et j'ai dû l'annuler.
Updated by Alexis Bienvenüe about 4 years ago
- Status changed from Feedback to Closed
- % Done changed from 0 to 100