6
>>> manager = Browser('manager', 'schooltool')
8
Now, set up two school years and a couple of terms in them:
10
>>> from schooltool.app.browser.ftests import setup
12
>>> setup.addSchoolYear('2005', '2005-01-01', '2005-12-31')
13
>>> setup.addTerm('Semester1', '2005-01-01', '2005-06-30', '2005')
14
>>> setup.addTerm('Semester2', '2005-07-01', '2005-12-31', '2005')
16
>>> setup.addSchoolYear('2006', '2006-01-01', '2006-12-31')
17
>>> setup.addTerm('Semester1', '2006-01-01', '2006-06-30', '2006')
18
>>> setup.addTerm('Semester2', '2006-07-01', '2006-12-31', '2006')
22
>>> setup.addCourse('Physics I', '2005')
23
>>> setup.addCourse('Math I', '2005')
24
>>> setup.addCourse('Physics II', '2006')
25
>>> setup.addCourse('Math II', '2006')
29
>>> from schooltool.basicperson.browser.ftests.setup import addPerson
30
>>> addPerson('Paul', 'Cardune', 'paul', 'pwd', browser=manager)
31
>>> addPerson('Tom', 'Hoffman', 'tom', 'pwd', browser=manager)
32
>>> addPerson('Claudia', 'Richter', 'claudia', 'pwd', browser=manager)
33
>>> addPerson('Stephan', 'Richter', 'stephan', 'pwd', browser=manager)
34
>>> addPerson('Alan', 'Elkner', 'alan', 'pwd', browser=manager)
36
Set up a section for each term:
38
>>> setup.addSection('Physics I', '2005', 'Semester1',
39
... instructors=['Stephan'],
40
... members=['Tom', 'Claudia', 'Paul'])
41
>>> setup.addSection('Math I', '2005', 'Semester2',
42
... instructors=['Alan'],
43
... members=['Tom', 'Claudia', 'Paul'])
44
>>> setup.addSection('Physics I', '2006', 'Semester1',
45
... instructors=['Stephan'],
46
... members=['Tom', 'Claudia', 'Paul'])
47
>>> setup.addSection('Math I', '2006', 'Semester2',
48
... instructors=['Alan'],
49
... members=['Tom', 'Claudia', 'Paul'])
51
Log in as stephan, teacher of the Physics sections:
53
>>> stephan = Browser('stephan', 'pwd')
55
Add a couple of activities to the default worksheet:
57
>>> stephan.getLink('Gradebook').click()
60
>>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
62
>>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
63
Physics I - Physics I (1)
65
>>> stephan.getLink('New Activity').click()
66
>>> stephan.getControl('Title').value = 'HW 1'
67
>>> stephan.getControl('Description').value = 'Homework 1'
68
>>> stephan.getControl('Category').value = ['assignment']
69
>>> stephan.getControl('Maximum').value = '50'
70
>>> stephan.getControl('Add').click()
72
>>> stephan.getLink('New Activity').click()
73
>>> stephan.getControl('Title').value = 'Quiz'
74
>>> stephan.getControl('Description').value = 'Week 1 Pop Quiz'
75
>>> stephan.getControl('Category').value = ['exam']
76
>>> stephan.getControl('Add').click()
80
>>> stephan.getControl(name='Activity_paul').value = '40'
81
>>> stephan.getControl(name='Activity_tom').value = '48'
82
>>> stephan.getControl(name='Activity_claudia').value = '45'
84
>>> stephan.getControl(name='Activity-2_paul').value = '90'
85
>>> stephan.getControl(name='Activity-2_tom').value = '88'
86
>>> stephan.getControl(name='Activity-2_claudia').value = '29'
88
>>> stephan.getControl('Save').click()
90
Let's go to his other section in the 2006 year:
92
>>> stephan.open(url+'?currentTerm=2006-.semester1-')
93
>>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
95
>>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
96
Physics II - Physics II (1)
98
Add a couple of activities:
100
>>> stephan.getLink('New Activity').click()
101
>>> stephan.getControl('Title').value = 'HW 1'
102
>>> stephan.getControl('Description').value = 'Homework 1'
103
>>> stephan.getControl('Category').value = ['assignment']
104
>>> stephan.getControl('Add').click()
106
>>> stephan.getLink('New Activity').click()
107
>>> stephan.getControl('Title').value = 'Quiz'
108
>>> stephan.getControl('Description').value = 'Week 1 Pop Quiz'
109
>>> stephan.getControl('Category').value = ['exam']
110
>>> stephan.getControl('Add').click()
114
>>> stephan.getControl(name='Activity_paul').value = '90'
115
>>> stephan.getControl(name='Activity_tom').value = '80'
116
>>> stephan.getControl(name='Activity_claudia').value = '95'
118
>>> stephan.getControl(name='Activity-2_paul').value = '100'
119
>>> stephan.getControl(name='Activity-2_tom').value = '95'
120
>>> stephan.getControl(name='Activity-2_claudia').value = '87'
122
>>> stephan.getControl('Save').click()
124
Now let's log in as Alan:
126
>>> alan = Browser('alan', 'pwd')
128
Add a couple of activities to the default worksheet:
130
>>> alan.getLink('Gradebook').click()
133
>>> alan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
135
>>> alan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
138
>>> alan.getLink('New Activity').click()
139
>>> alan.getControl('Title').value = 'HW 1'
140
>>> alan.getControl('Description').value = 'Homework 1'
141
>>> alan.getControl('Category').value = ['assignment']
142
>>> alan.getControl('Maximum').value = '50'
143
>>> alan.getControl('Add').click()
145
>>> alan.getLink('New Activity').click()
146
>>> alan.getControl('Title').value = 'Quiz'
147
>>> alan.getControl('Description').value = 'Week 1 Pop Quiz'
148
>>> alan.getControl('Category').value = ['exam']
149
>>> alan.getControl('Add').click()
153
>>> alan.getControl(name='Activity_paul').value = '50'
154
>>> alan.getControl(name='Activity_tom').value = '37'
155
>>> alan.getControl(name='Activity_claudia').value = '31'
157
>>> alan.getControl(name='Activity-2_paul').value = '80'
158
>>> alan.getControl(name='Activity-2_tom').value = '70'
159
>>> alan.getControl(name='Activity-2_claudia').value = '60'
161
>>> alan.getControl('Save').click()
163
Let's go to his other section in the 2006 year:
165
>>> alan.open(url+'?currentTerm=2006-.semester2-')
166
>>> alan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
168
>>> alan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
169
Math II - Math II (1)
171
Add a couple of activities:
173
>>> alan.getLink('New Activity').click()
174
>>> alan.getControl('Title').value = 'HW 1'
175
>>> alan.getControl('Description').value = 'Homework 1'
176
>>> alan.getControl('Category').value = ['assignment']
177
>>> alan.getControl('Add').click()
179
>>> alan.getLink('New Activity').click()
180
>>> alan.getControl('Title').value = 'Quiz'
181
>>> alan.getControl('Description').value = 'Week 1 Pop Quiz'
182
>>> alan.getControl('Category').value = ['exam']
183
>>> alan.getControl('Add').click()
187
>>> alan.getControl(name='Activity_paul').value = '70'
188
>>> alan.getControl(name='Activity_tom').value = '85'
189
>>> alan.getControl(name='Activity_claudia').value = '100'
191
>>> alan.getControl(name='Activity-2_paul').value = '70'
192
>>> alan.getControl(name='Activity-2_tom').value = '80'
193
>>> alan.getControl(name='Activity-2_claudia').value = '100'
195
>>> alan.getControl('Save').click()
198
Export Worksheets as XLS
199
~~~~~~~~~~~~~~~~~~~~~~~~
201
Gradebook's worksheets can be exported to a XLS file:
203
>>> stephan.getLink('Export XLS').click()
204
>>> stephan.headers.get('Content-Type')
206
>>> stephan.open('http://localhost/gradebook.html')
207
>>> stephan.getLink('Worksheets').click()
208
>>> stephan.getLink('Export XLS').click()
209
>>> stephan.headers.get('Content-Type')
216
We supply a CSV view for getting all grades out of schooltool in CSV format.
218
>>> manager.getLink('Manage').click()
219
>>> manager.getLink('Download Gradebook CSV').click()
220
>>> print manager.contents
221
"year","term","section","worksheet","activity","student","grade"
222
"2005","semester1","1","Worksheet","Activity","claudia","45"
223
"2005","semester1","1","Worksheet","Activity-2","claudia","29"
224
"2005","semester1","1","Worksheet","Activity","paul","40"
225
"2005","semester1","1","Worksheet","Activity-2","paul","90"
226
"2005","semester1","1","Worksheet","Activity","tom","48"
227
"2005","semester1","1","Worksheet","Activity-2","tom","88"
228
"2005","semester2","1","Worksheet","Activity","claudia","31"
229
"2005","semester2","1","Worksheet","Activity-2","claudia","60"
230
"2005","semester2","1","Worksheet","Activity","paul","50"
231
"2005","semester2","1","Worksheet","Activity-2","paul","80"
232
"2005","semester2","1","Worksheet","Activity","tom","37"
233
"2005","semester2","1","Worksheet","Activity-2","tom","70"
234
"2006","semester1","1","Worksheet","Activity","claudia","95"
235
"2006","semester1","1","Worksheet","Activity-2","claudia","87"
236
"2006","semester1","1","Worksheet","Activity","paul","90"
237
"2006","semester1","1","Worksheet","Activity-2","paul","100"
238
"2006","semester1","1","Worksheet","Activity","tom","80"
239
"2006","semester1","1","Worksheet","Activity-2","tom","95"
240
"2006","semester2","1","Worksheet","Activity","claudia","100"
241
"2006","semester2","1","Worksheet","Activity-2","claudia","100"
242
"2006","semester2","1","Worksheet","Activity","paul","70"
243
"2006","semester2","1","Worksheet","Activity-2","paul","70"
244
"2006","semester2","1","Worksheet","Activity","tom","85"
245
"2006","semester2","1","Worksheet","Activity-2","tom","80"