« Previous - Version 5/20 (diff) - Next » - Current version
Rémi G., 03/19/2018 10:56 am


Presentation

AMCtoOwncloud is a Nautilus script that sends Auto Multiple Choice (AMC) annotated papers to Owncloud/Nextcloud and share them with the corresponding students.

Each quiz file is uploaded to a remote folder unique to each student. Then each folder is:

  • shared with the student who can be a local user or a remote user on another federated server
  • shared by link

Eventually, shared links are saved to a newly created .csv file (default behaviour) or to the current .csv file.

In the end, the remote folder structure will look like this:

Quizzes/
├── 3emeE/
|   ├── MOUSE Mickey (3998) - Maths Quizzes/
│   │   └── Quiz 1 - MOUSE Mickey (3998).pdf
│   └── MOUSE Minnie (3999) - Maths Quizzes/
│       └── Quiz 1 - MOUSE Minnie (3999).pdf
└── 4emeE/
    └── DUCK Donald (4999) - Maths Quizzes/
        └── Quiz 1 - DUCK Donald (3999).pdf

The root folder Quizzes/, Quiz 1, and Maths Quizzes are configurable, and the other fields come from the `.csv` file.
I use this script to avoid sending emails.

Installation

Download the latest release from github and copy AMCtoOwncloud.sh and .AMCtoOwncloud.py in the Nautilus scripts folder: ~/.local/share/nautilus/scripts/

In order to make it work, you need to install the following Python modules:

requests, lxml.html, owncloud (see pyocclient).

Usually the first are packaged in your distribution. For the owncloud package, I use the following command:

pip3 install pyocclient

You also need gnome-terminal or you will have to edit the AMCtoOwncloud.sh script file to use another terminal.

Configuration

Edit the .AMCtoOwncloud.py and change the parameters at the end:

 
CSV = '/path/to/csv/students.csv'
FOLDER = 'Quizzes/'
ADDRESS = 'https://ncloud.zaclys.com'
USERNAME = 'MyUserName'

The CSV file containing all your student information must use colons : as separators and the following headers (there are optional parameters in method identify_students() to change this behaviour, see at the end):

group:surname:name:number: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