Envoyer et partager les copies sur OwncloudNextcloud

Version 6 (Rémi G., 03/19/2018 11:00 am)

1 1
h1. Présentation
2 1
3 1
"AMCtoOwncloud":https://github.com/remjg/AMCtoOwncloud est un _script Nautilus_ qui permet d'envoyer simplement les copies corrigées avec _Auto Multiple Choice_ sur un serveur _Owncloud/Nextcloud_.
4 1
5 1
Chaque copie est téléversée dans un dossier unique créé pour chaque étudiant qui sera :
6 1
* _partagé avec l'étudiant_ (qui peut être un utilisateur local ou distant sur un serveur fédéré) ;
7 1
* _partagé par lien_.
8 1
9 1
Les liens partagés sont ensuite sauvegardés dans un nouveau fichier @.csv@ (comportement par défaut) ou dans le fichier @.csv@ courant.
10 1
11 1
Après exécution du programme, la hiérarchie des fichiers est la suivante :
12 1
13 1
<pre>
14 1
Contrôles/
15 1
├── 3emeE/
16 1
|   ├── MOUSE Mickey (3998) - Interros Maths/
17 1
│   │   └── Interro 1 - MOUSE Mickey (3998).pdf
18 1
│   └── MOUSE Minnie (3999) - Interros Maths/
19 1
│       └── Interro 1 - MOUSE Minnie (3999).pdf
20 1
└── 4emeE/
21 1
    └── DUCK Donald (4999) - Interros Maths/
22 1
        └── Interro 1 - DUCK Donald (3999).pdf
23 1
</pre>
24 1
25 1
Les noms @Contrôles@, @Interro 1@, et @Interros Maths@ sont modifiables, et les autres champs sont extraits du fichier @.csv@ des étudiants. Par exemple, si vous n'avez pas de classes saisies dans votre fichier @.csv@, et si vous dossier racine est vide @''@, l'organisation des fichiers deviendra :
26 1
27 1
<pre>
28 1
MOUSE Mickey (3998) - Interros Maths/
29 1
    └── Interro 1 - MOUSE Mickey (3998).pdf
30 1
MOUSE Minnie (3999) - Interros Maths/
31 1
    └── Interro 1 - MOUSE Minnie (3999).pdf
32 1
DUCK Donald (4999) - Interros Maths/
33 1
    └── Interro 1 - DUCK Donald (3999).pdf
34 1
</pre>
35 2 Rémi G.
36 2 Rémi G.
h1. Utilisation
37 2 Rémi G.
38 2 Rémi G.
Faire un _clic droit_ sur les copies corrigées (ou sur les dossiers les contenant) et se rendre dans le menu _scripts_ :
39 2 Rémi G.
40 2 Rémi G.
!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript1-Menu.png!
41 2 Rémi G.
42 2 Rémi G.
Saisir le mot de passe _Owncloud_ , le nom du contrôle, et attendre :
43 2 Rémi G.
44 2 Rémi G.
!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript2-Output.png!
45 2 Rémi G.
46 2 Rémi G.
Les éventuels problèmes rencontrés devraient être indiqués (erreurs d'identification, d'envoi ou de partage, fichiers non associés à des étudiants, etc...).
47 2 Rémi G.
48 2 Rémi G.
h1. Installation
49 2 Rémi G.
50 6 Rémi G.
Télécharger la "dernière version sur github":https://github.com/remjg/AMCtoOwncloud/releases/latest, puis copier @AMCtoOwncloud.sh@ et @.AMCtoOwncloud.py@ dans le répertoire des scripts Nautilus : @~/.local/share/nautilus/scripts/@
51 2 Rémi G.
52 2 Rémi G.
!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/InstallingScript.png!
53 2 Rémi G.
54 2 Rémi G.
Installer les modules Python suivants :
55 2 Rémi G.
56 5 Rémi G.
@requests@, @lxml.html@, @owncloud@ (voir "pyocclient":https://github.com/owncloud/pyocclient).
57 2 Rémi G.
58 2 Rémi G.
Généralement, les premiers sont déjà présents sous forme de paquets dans votre distribution. Pour installer le module @owncloud@, j'utilise la commande suivante :
59 2 Rémi G.
60 2 Rémi G.
<pre>
61 2 Rémi G.
pip3 install pyocclient
62 2 Rémi G.
</pre>
63 2 Rémi G.
64 2 Rémi G.
Vérifier que @gnome-terminal@ est installé ou éditer le fichier @AMCtoOwncloud.sh@ pour utiliser un autre terminal.
65 2 Rémi G.
66 2 Rémi G.
h1. Configuration
67 2 Rémi G.
68 2 Rémi G.
Éditer le fichier @.AMCtoOwncloud.py@ et changer les paramètres suivants à la fin du programme :
69 2 Rémi G.
70 2 Rémi G.
<pre>
71 2 Rémi G.
CSV = '/chemin/vers/csv/etudiants.csv'
72 2 Rémi G.
FOLDER = 'Contrôles/'
73 2 Rémi G.
ADDRESS = 'https://ncloud.zaclys.com'
74 2 Rémi G.
USERNAME = 'NomUtilisateur'
75 2 Rémi G.
</pre>
76 2 Rémi G.
77 4 Rémi G.
Le fichier @.csv@ contenant les informations des étudiants doit utiliser des points-virgules @;@ comme séparateurs ainsi que les en-têtes de colonnes ci-dessous (il y a des paramètres optionnels dans la méthode `identify_students()` pour personnaliser ce comportement, voir "plus bas":https://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Envoyer_et_partager_les_copies_sur_OwncloudNextcloud#Gnrer-des-courriers-dinformation :
78 2 Rémi G.
79 2 Rémi G.
<pre>
80 2 Rémi G.
group;surname;name;id;owncloud;email
81 2 Rémi G.
3emeE;MOUSE;Mickey;3998;cabitzmil;mickeymouse@domain.com
82 2 Rémi G.
3emeE;MOUSE;Minnie;3999;agrevet;minniemouse@domain.com
83 2 Rémi G.
4emeE;DUCK;Donald;4999;prenaud@aFederatedServer.com;donaldduck@domain.com
84 2 Rémi G.
</pre>
85 2 Rémi G.
86 2 Rémi G.
Enfin, *les copies corrigées doivent comporter le numéro d'étudiant* dans leur nom de fichier
87 2 Rémi G.
(le premier nombre est extrait pour associer chaque copie à l'étudiant correspondant). Pour ce faire, ne pas oublier de configurer _auto-multiple-choice_ avec les mêmes en-têtes que dans votre fichier @.csv@ :
88 2 Rémi G.
89 2 Rémi G.
!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/RenamingAnnotatedPapers.png!
90 3 Rémi G.
91 3 Rémi G.
h1. Cas particuliers d'utilisation
92 3 Rémi G.
93 3 Rémi G.
Pour personnaliser le comportement du script, vous pouvez éditer les 4 dernières lignes du fichier @.AMCtoOwncloud.py@ :
94 3 Rémi G.
95 3 Rémi G.
<pre>
96 3 Rémi G.
amcsend = AMCtoOwncloud()
97 3 Rémi G.
amcsend.identify_students(csv_filepath=CSV)
98 3 Rémi G.
amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, SSO=False)
99 3 Rémi G.
amcsend.upload_and_share(folder_root=FOLDER, replace_csv=False)
100 3 Rémi G.
</pre>
101 3 Rémi G.
102 3 Rémi G.
Par exemple, si votre serveur _Owncloud_ se trouve derrière un _portail d'authentification unique_, vous pouvez utiliser l'option @SSO=True@. Testé avec un espace numérique de travail "Envole":https://envole.ac-dijon.fr qui utilise "CAS":https://fr.wikipedia.org/wiki/Central_Authentication_Service comme portail d'authentification unique.
103 3 Rémi G.
104 3 Rémi G.
Vous pouvez aussi sauvegarder les liens partagés dans le fichier @.csv@ courant avec l'option @replace_csv=True@. Pensez à faire une sauvegarde avant et notez que _les lignes commençant par un @#@ (commentaires) seront perdues lors du processus_.
105 3 Rémi G.
106 3 Rémi G.
Plus d'options sont disponibles, vous pouvez trouver ci-dessous une liste complète de toutes les options avec les paramètres par défaut :
107 3 Rémi G.
108 3 Rémi G.
<pre>
109 3 Rémi G.
amcsend = AMCtoOwncloud(list_of_paths=None, verbose=False)
110 3 Rémi G.
amcsend.identify_students(csv_filepath=CSV, verbose=False, debug=False,
111 3 Rémi G.
                          csv_delimiter=";",
112 3 Rémi G.
                          csv_comment="#",
113 3 Rémi G.
                          name_header="name",
114 3 Rémi G.
                          surname_header="surname",
115 3 Rémi G.
                          group_header="group",
116 3 Rémi G.
                          number_header="id",
117 3 Rémi G.
                          email_header="email",
118 3 Rémi G.
                          owncloud_header="owncloud",
119 3 Rémi G.
                          link_header="link")
120 3 Rémi G.
amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, password=None, SSO=False)
121 3 Rémi G.
amcsend.upload_and_share(folder_root=FOLDER, folder_name=" - Maths Quizzes",
122 3 Rémi G.
                                             quiz_name=None,
123 3 Rémi G.
                                             share_with_user=True,
124 3 Rémi G.
                                             share_by_link=True,
125 3 Rémi G.
                                             replace_csv=False)
126 3 Rémi G.
</pre>
127 3 Rémi G.
128 4 Rémi G.
h1. Générer des courriers d'information
129 3 Rémi G.
130 3 Rémi G.
Un document LaTeX est aussi présent dans le dossier @/information letters/@ pour imprimer les liens partagés ainsi que le QR code correspondant pour chaque étudiant :
131 3 Rémi G.
132 3 Rémi G.
!https://raw.githubusercontent.com/remjg/AMCtoOwncloud/master/docs/InformationLetter.png!
133 3 Rémi G.
134 3 Rémi G.
h1. Quelques commentaires personnels
135 3 Rémi G.
136 3 Rémi G.
Envoyer le copies corrigées aux élèves était un véritable problème pour moi :
137 3 Rémi G.
138 3 Rémi G.
* je travaille en collège et tous les élèves/parents n'ont pas un email ;
139 3 Rémi G.
* s'ils ont une adresse email, ils ne s'en rappelle pas toujours (certains ne veulent aussi simplement pas être contactés !) ;
140 3 Rémi G.
* les emails sont souvent marqués comme "spam" ;
141 3 Rémi G.
* il n'est pas possible d'envoyer un trop grand nombre d'email à la fois.
142 3 Rémi G.
143 3 Rémi G.
Au final, utiliser une plateforme de cloud était plus pratique, d'autant plus que les élèves dans ma région ont un compte _Owncloud_ sur l'ENT. Pour les étudiants n'ayant pas de compte cloud ou rencontrant des difficultés pour se connecter (beaucoup de mauvaise volonté), je procède désormais ainsi : je fais coller dans le carnet un courrier avec le lien partagé et un QR code pour en faciliter l'accès.
144 3 Rémi G.
145 3 Rémi G.
J'essaierai à l'avenir de raccourcir les liens automatiquement. L'intégration doit aussi pouvoir se faire avec d'autres navigateurs de fichiers (Thunar ou Dolphin par exemple).