Envoyer et partager les copies sur OwncloudNextcloud

Version 1 (Rémi G., 03/19/2018 11:00 am) → Version 2/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!