Upload and share with ownCloud or NextCloud
Version 16 (Rémi G., 03/19/2018 10:56 am)
1 | 4 | Rémi G. | h1. Presentation |
---|---|---|---|
2 | 1 | ||
3 | 1 | "AMCtoOwncloud":https://github.com/remjg/AMCtoOwncloud is a _Nautilus script_ that sends Auto Multiple Choice (AMC) annotated papers to Owncloud/Nextcloud and share them with the corresponding students. |
|
4 | 1 | ||
5 | 1 | Each quiz file is uploaded to a remote folder unique to each student. Then each folder is: |
|
6 | 1 | ||
7 | 3 | Rémi G. | * _shared with the student_ who can be a local user or a remote user on another federated server |
8 | 3 | Rémi G. | * _shared by link_ |
9 | 1 | ||
10 | 3 | Rémi G. | Eventually, _shared links are saved_ to a newly created @.csv@ file (default behaviour) or to the current @.csv@ file. |
11 | 1 | ||
12 | 1 | In the end, the remote folder structure will look like this: |
|
13 | 1 | ||
14 | 1 | <pre> |
|
15 | 1 | Quizzes/ |
|
16 | 1 | ├── 3emeE/ |
|
17 | 1 | | ├── MOUSE Mickey (3998) - Maths Quizzes/ |
|
18 | 1 | │ │ └── Quiz 1 - MOUSE Mickey (3998).pdf |
|
19 | 1 | │ └── MOUSE Minnie (3999) - Maths Quizzes/ |
|
20 | 1 | │ └── Quiz 1 - MOUSE Minnie (3999).pdf |
|
21 | 1 | └── 4emeE/ |
|
22 | 1 | └── DUCK Donald (4999) - Maths Quizzes/ |
|
23 | 1 | └── Quiz 1 - DUCK Donald (3999).pdf |
|
24 | 1 | </pre> |
|
25 | 1 | ||
26 | 11 | Rémi G. | The root folder @Quizzes/@, @Quiz 1@, and @Maths Quizzes@ are configurable, and the other fields come from the @.csv@ file. |
27 | 13 | Rémi G. | For instance, if you don't have groups specified in you @.csv@ file, and you leave the root folder empty @''@, it can also look like this: |
28 | 11 | Rémi G. | |
29 | 11 | Rémi G. | <pre> |
30 | 11 | Rémi G. | MOUSE Mickey (3998) - Maths Quizzes/ |
31 | 11 | Rémi G. | └── Quiz 1 - MOUSE Mickey (3998).pdf |
32 | 11 | Rémi G. | MOUSE Minnie (3999) - Maths Quizzes/ |
33 | 11 | Rémi G. | └── Quiz 1 - MOUSE Minnie (3999).pdf |
34 | 11 | Rémi G. | DUCK Donald (4999) - Maths Quizzes/ |
35 | 11 | Rémi G. | └── Quiz 1 - DUCK Donald (3999).pdf |
36 | 11 | Rémi G. | </pre> |
37 | 4 | Rémi G. | |
38 | 16 | Rémi G. | h1. Use |
39 | 16 | Rémi G. | |
40 | 16 | Rémi G. | _Right click_ on the annotated papers (or on folders) and go to the submenu _scripts_: |
41 | 16 | Rémi G. | |
42 | 16 | Rémi G. | !https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript1-Menu.png! |
43 | 16 | Rémi G. | |
44 | 16 | Rémi G. | Then enter your _Owncloud_ password, the name of the quiz, and wait: |
45 | 16 | Rémi G. | |
46 | 16 | Rémi G. | !https://github.com/remjg/AMCtoOwncloud/raw/master/docs/UsingScript2-Output.png! |
47 | 16 | Rémi G. | |
48 | 16 | Rémi G. | Every encountered issue should be displayed (unmatched files, login error, uploading or sharing errors). |
49 | 16 | Rémi G. | |
50 | 6 | Rémi G. | h1. Installation |
51 | 4 | Rémi G. | |
52 | 4 | Rémi G. | Download the "latest release from github":https://github.com/remjg/AMCtoOwncloud/releases/tag/v0.3.0 and copy @AMCtoOwncloud.sh@ and @.AMCtoOwncloud.py@ in the _Nautilus scripts_ folder: @~/.local/share/nautilus/scripts/@ |
53 | 4 | Rémi G. | |
54 | 4 | Rémi G. | !https://github.com/remjg/AMCtoOwncloud/raw/master/docs/InstallingScript.png! |
55 | 5 | Rémi G. | |
56 | 5 | Rémi G. | In order to make it work, you need to install the following Python modules: |
57 | 5 | Rémi G. | |
58 | 5 | Rémi G. | @requests@, @lxml.html@, @owncloud@ (see "pyocclient":https://github.com/owncloud/pyocclient). |
59 | 5 | Rémi G. | |
60 | 5 | Rémi G. | Usually the first are packaged in your distribution. For the @owncloud@ package, I use the following command: |
61 | 5 | Rémi G. | |
62 | 5 | Rémi G. | <pre> |
63 | 5 | Rémi G. | pip3 install pyocclient |
64 | 5 | Rémi G. | </pre> |
65 | 5 | Rémi G. | |
66 | 5 | Rémi G. | You also need @gnome-terminal@ or you will have to edit the @AMCtoOwncloud.sh@ script file to use another terminal. |
67 | 5 | Rémi G. | |
68 | 6 | Rémi G. | h1. Configuration |
69 | 5 | Rémi G. | |
70 | 5 | Rémi G. | Edit the @.AMCtoOwncloud.py@ and change the parameters at the end: |
71 | 5 | Rémi G. | |
72 | 10 | Rémi G. | <pre><code class="python"> |
73 | 5 | Rémi G. | CSV = '/path/to/csv/students.csv' |
74 | 5 | Rémi G. | FOLDER = 'Quizzes/' |
75 | 5 | Rémi G. | ADDRESS = 'https://ncloud.zaclys.com' |
76 | 5 | Rémi G. | USERNAME = 'MyUserName' |
77 | 10 | Rémi G. | </code></pre> |
78 | 5 | Rémi G. | |
79 | 9 | Rémi G. | 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 "Special use cases":https://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Upload_and_share_with_ownCloud_or_NextCloud#Special-use-cases): |
80 | 6 | Rémi G. | |
81 | 6 | Rémi G. | <pre> |
82 | 6 | Rémi G. | group:surname:name:number:owncloud:email |
83 | 6 | Rémi G. | 3emeE:MOUSE:Mickey:3998:cabitzmil:mickeymouse@domain.com |
84 | 6 | Rémi G. | 3emeE:MOUSE:Minnie:3999:agrevet:minniemouse@domain.com |
85 | 6 | Rémi G. | 4emeE:DUCK:Donald:4999:prenaud@aFederatedServer.com:donaldduck@domain.com |
86 | 6 | Rémi G. | </pre> |
87 | 7 | Rémi G. | |
88 | 6 | Rémi G. | Finally, *annotated papers must contain the student number in their name* |
89 | 6 | Rémi G. | (the first number of the file name is extracted to associate each quiz to the corresponding student). Don't forget to configure @auto-multiple-choice@ using the column headers of your @.csv@ file: |
90 | 6 | Rémi G. | |
91 | 1 | !https://github.com/remjg/AMCtoOwncloud/raw/master/docs/RenamingAnnotatedPapers.png! |
|
92 | 7 | Rémi G. | |
93 | 7 | Rémi G. | h1. Special use cases |
94 | 7 | Rémi G. | |
95 | 7 | Rémi G. | To change the script behaviour, you can edit the last four lines: |
96 | 7 | Rémi G. | |
97 | 10 | Rémi G. | <pre><code class="python"> |
98 | 7 | Rémi G. | amcsend = AMCtoOwncloud() |
99 | 7 | Rémi G. | amcsend.identify_students(csv_filepath=CSV) |
100 | 7 | Rémi G. | amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, SSO=False) |
101 | 7 | Rémi G. | amcsend.upload_and_share(folder_root=FOLDER, replace_csv=False) |
102 | 10 | Rémi G. | </code></pre> |
103 | 7 | Rémi G. | |
104 | 7 | Rémi G. | For instance, if your _Owncloud_ server is behind a _Central Authentication Service (CAS)_, you might want to use the parameter @SSO=True@. It has been tested with the Virtual Learning Environment "Envole":https://envole.ac-dijon.fr of a school that use CAS fo authentication. |
105 | 7 | Rémi G. | |
106 | 7 | Rémi G. | You can also save shared links to the _current_ @.csv@ file with @replace_csv=True@. Make sure to backup before and be aware that _comment lines starting with a @#@ are lost in the process_. |
107 | 7 | Rémi G. | |
108 | 7 | Rémi G. | More options are available, see below for a full list of parameters with default values: |
109 | 7 | Rémi G. | |
110 | 10 | Rémi G. | <pre><code class="python"> |
111 | 7 | Rémi G. | amcsend = AMCtoOwncloud(list_of_paths=None, verbose=False) |
112 | 7 | Rémi G. | amcsend.identify_students(csv_filepath=CSV, verbose=False, debug=False, |
113 | 7 | Rémi G. | csv_delimiter=":", |
114 | 7 | Rémi G. | csv_comment="#", |
115 | 7 | Rémi G. | name_header="name", |
116 | 7 | Rémi G. | surname_header="surname", |
117 | 7 | Rémi G. | group_header="group", |
118 | 7 | Rémi G. | number_header="number", |
119 | 7 | Rémi G. | email_header="email", |
120 | 7 | Rémi G. | owncloud_header="owncloud", |
121 | 7 | Rémi G. | link_header="link") |
122 | 7 | Rémi G. | amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, password=None, SSO=False) |
123 | 7 | Rémi G. | amcsend.upload_and_share(folder_root=FOLDER, folder_name=" - Maths Quizzes", |
124 | 7 | Rémi G. | quiz_name=None, |
125 | 7 | Rémi G. | share_with_user=True, |
126 | 7 | Rémi G. | share_by_link=True, |
127 | 7 | Rémi G. | replace_csv=False) |
128 | 10 | Rémi G. | </code></pre> |
129 | 12 | Rémi G. | |
130 | 12 | Rémi G. | h1. Personal comments |
131 | 12 | Rémi G. | |
132 | 15 | Rémi G. | Sending annotated papers was complicated for me: |
133 | 12 | Rémi G. | |
134 | 12 | Rémi G. | * I work in junior high school and not every student/parent has an email. |
135 | 12 | Rémi G. | * If they have an email, they don't always remember it (or they don't want to be contacted !) |
136 | 12 | Rémi G. | * Emails are often marked as spam |
137 | 12 | Rémi G. | * You can't send too many mails at the same time |
138 | 12 | Rémi G. | |
139 | 15 | Rémi G. | Hence, using a cloud is easier. Even if the students don't have a cloud account at school: you can give them the share link on a paper and they (including their parents) can access to all the graded tests. |
140 | 12 | Rémi G. | |
141 | 14 | Rémi G. | I will try in a future version to automatically shorten links and I will add a LaTeX file that reads the CSV file and generates an information letter for each student with the share link. |