Envoyer et partager les copies sur OwncloudNextcloud

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

h1. Présentation

"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_.

Chaque copie est téléversée dans un dossier unique créé pour chaque étudiant qui sera :
* _partagé avec l'étudiant_ (qui peut être un utilisateur local ou distant sur un serveur fédéré) ;
* _partagé par lien_.

Les liens partagés sont ensuite sauvegardés dans un nouveau fichier @.csv@ (comportement par défaut) ou dans le fichier @.csv@ courant.

Après exécution du programme, la hiérarchie des fichiers est la suivante :

<pre>
Contrôles/
├── 3emeE/
| ├── MOUSE Mickey (3998) - Interros Maths/
│ │ └── Interro 1 - MOUSE Mickey (3998).pdf
│ └── MOUSE Minnie (3999) - Interros Maths/
│ └── Interro 1 - MOUSE Minnie (3999).pdf
└── 4emeE/
└── DUCK Donald (4999) - Interros Maths/
└── Interro 1 - DUCK Donald (3999).pdf
</pre>

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 :

<pre>
MOUSE Mickey (3998) - Interros Maths/
└── Interro 1 - MOUSE Mickey (3998).pdf
MOUSE Minnie (3999) - Interros Maths/
└── Interro 1 - MOUSE Minnie (3999).pdf
DUCK Donald (4999) - Interros Maths/
└── Interro 1 - DUCK Donald (3999).pdf
</pre>

h1. Utilisation

Faire un _clic droit_ sur les copies corrigées (ou sur les dossiers les contenant) et se rendre dans le menu _scripts_ :

!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript1-Menu.png!

Saisir le mot de passe _Owncloud_ , le nom du contrôle, et attendre :

!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript2-Output.png!

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...).

h1. Installation

Copier @AMCtoOwncloud.sh@ and @.AMCtoOwncloud.py@ dans le répertoire des scripts Nautilus : @~/.local/share/nautilus/scripts/@

!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/InstallingScript.png!

Installer les modules Python suivants :

@requests@, @lxml.html@, @owncloud@ (voir [pyocclient](https://github.com/owncloud/pyocclient)).

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 :

<pre>
pip3 install pyocclient
</pre>

Vérifier que @gnome-terminal@ est installé ou éditer le fichier @AMCtoOwncloud.sh@ pour utiliser un autre terminal.

h1. Configuration

Éditer le fichier @.AMCtoOwncloud.py@ et changer les paramètres suivants à la fin du programme :

<pre>
CSV = '/chemin/vers/csv/etudiants.csv'
FOLDER = 'Contrôles/'
ADDRESS = 'https://ncloud.zaclys.com'
USERNAME = 'NomUtilisateur'
</pre>

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://github.com/remjg/AMCtoOwncloud/blob/master/README-FR.md#cas-particuliers-dutilisation)):

<pre>
group;surname;name;id;owncloud;email
3emeE;MOUSE;Mickey;3998;cabitzmil;mickeymouse@domain.com
3emeE;MOUSE;Minnie;3999;agrevet;minniemouse@domain.com
4emeE;DUCK;Donald;4999;prenaud@aFederatedServer.com;donaldduck@domain.com
</pre>

Enfin, *les copies corrigées doivent comporter le numéro d'étudiant* dans leur nom de fichier
(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@ :

!https://github.com/remjg/AMCtoOwncloud/raw/master/docs/RenamingAnnotatedPapers.png!

h1. Cas particuliers d'utilisation

Pour personnaliser le comportement du script, vous pouvez éditer les 4 dernières lignes du fichier @.AMCtoOwncloud.py@ :

<pre>
amcsend = AMCtoOwncloud()
amcsend.identify_students(csv_filepath=CSV)
amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, SSO=False)
amcsend.upload_and_share(folder_root=FOLDER, replace_csv=False)
</pre>

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.

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_.

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 :

<pre>
amcsend = AMCtoOwncloud(list_of_paths=None, verbose=False)
amcsend.identify_students(csv_filepath=CSV, verbose=False, debug=False,
csv_delimiter=";",
csv_comment="#",
name_header="name",
surname_header="surname",
group_header="group",
number_header="id",
email_header="email",
owncloud_header="owncloud",
link_header="link")
amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, password=None, SSO=False)
amcsend.upload_and_share(folder_root=FOLDER, folder_name=" - Maths Quizzes",
quiz_name=None,
share_with_user=True,
share_by_link=True,
replace_csv=False)
</pre>

h1. Générer des courriers d'informations

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 :

!https://raw.githubusercontent.com/remjg/AMCtoOwncloud/master/docs/InformationLetter.png!

h1. Quelques commentaires personnels

Envoyer le copies corrigées aux élèves était un véritable problème pour moi :

* je travaille en collège et tous les élèves/parents n'ont pas un email ;
* s'ils ont une adresse email, ils ne s'en rappelle pas toujours (certains ne veulent aussi simplement pas être contactés !) ;
* les emails sont souvent marqués comme "spam" ;
* il n'est pas possible d'envoyer un trop grand nombre d'email à la fois.

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.

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).