2
-- PostgreSQL database dump
5
SET client_encoding = 'UTF8';
6
SET standard_conforming_strings = off;
7
SET check_function_bodies = false;
8
SET client_min_messages = warning;
9
SET escape_string_warning = off;
11
SET search_path = public, pg_catalog;
14
-- Name: assessed_assessedid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
17
SELECT pg_catalog.setval('assessed_assessedid_seq', 1, true);
21
-- Name: login_unixid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
24
SELECT pg_catalog.setval('login_unixid_seq', 5004, true);
28
-- Name: login_loginid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
31
SELECT pg_catalog.setval('login_loginid_seq', 5, true);
35
-- Name: offering_offeringid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
38
SELECT pg_catalog.setval('offering_offeringid_seq', 6, true);
42
-- Name: project_extension_extensionid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
45
SELECT pg_catalog.setval('project_extension_extensionid_seq', 1, false);
49
-- Name: project_group_groupid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
52
SELECT pg_catalog.setval('project_group_groupid_seq', 1, true);
56
-- Name: project_projectid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
59
SELECT pg_catalog.setval('project_projectid_seq', 3, true);
63
-- Name: project_set_projectsetid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
66
SELECT pg_catalog.setval('project_set_projectsetid_seq', 2, true);
70
-- Name: project_submission_submissionid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
73
SELECT pg_catalog.setval('project_submission_submissionid_seq', 1, false);
77
-- Name: semester_semesterid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
80
SELECT pg_catalog.setval('semester_semesterid_seq', 4, true);
84
-- Name: subject_subjectid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
87
SELECT pg_catalog.setval('subject_subjectid_seq', 4, true);
91
-- Name: suite_variable_varid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
94
SELECT pg_catalog.setval('suite_variable_varid_seq', 2, true);
98
-- Name: test_case_part_partid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
101
SELECT pg_catalog.setval('test_case_part_partid_seq', 10, true);
105
-- Name: test_case_testid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
108
SELECT pg_catalog.setval('test_case_testid_seq', 10, true);
112
-- Name: test_suite_suiteid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
115
SELECT pg_catalog.setval('test_suite_suiteid_seq', 5, true);
119
-- Name: worksheet_exercise_ws_ex_id_seq; Type: SEQUENCE SET; Schema: public; Owner: -
122
SELECT pg_catalog.setval('worksheet_exercise_ws_ex_id_seq', 2, true);
126
-- Name: worksheet_worksheetid_seq; Type: SEQUENCE SET; Schema: public; Owner: -
129
SELECT pg_catalog.setval('worksheet_worksheetid_seq', 1, true);
133
-- Data for Name: assessed; Type: TABLE DATA; Schema: public; Owner: -
136
ALTER TABLE assessed DISABLE TRIGGER ALL;
138
INSERT INTO assessed (assessedid, loginid, groupid, projectid) VALUES (1, 2, NULL, 1);
141
ALTER TABLE assessed ENABLE TRIGGER ALL;
144
-- Data for Name: enrolment; Type: TABLE DATA; Schema: public; Owner: -
147
ALTER TABLE enrolment DISABLE TRIGGER ALL;
149
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (2, 1, 'lecturer', NULL, NULL, NULL, NULL, NULL, true);
150
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (2, 2, 'lecturer', NULL, NULL, NULL, NULL, NULL, true);
151
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (3, 2, 'tutor', NULL, NULL, NULL, NULL, NULL, true);
152
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (4, 1, 'student', NULL, NULL, NULL, NULL, NULL, true);
153
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (4, 2, 'student', NULL, NULL, NULL, NULL, NULL, true);
154
INSERT INTO enrolment (loginid, offeringid, role, result, special_result, supp_result, special_supp_result, notes, active) VALUES (5, 2, 'student', NULL, NULL, NULL, NULL, NULL, true);
157
ALTER TABLE enrolment ENABLE TRIGGER ALL;
160
-- Data for Name: exercise; Type: TABLE DATA; Schema: public; Owner: -
163
ALTER TABLE exercise DISABLE TRIGGER ALL;
165
INSERT INTO exercise (identifier, name, description, description_xhtml_cache, partial, solution, include, num_rows) VALUES ('factorial', 'Factorial', 'Write a function, `fac`, to compute the **factorial** of a number. e.g.::
170
Then, write a function `main`, which reads a number from stdin, and writes its factorial to stdout. e.g.::
175
', NULL, 'def fac(n):
188
print fac(f)', '', 12);
189
INSERT INTO exercise (identifier, name, description, description_xhtml_cache, partial, solution, include, num_rows) VALUES ('hello', 'Hello world', 'Write a program which prints out "Hello, world!" when it is run.
191
Note that if you print anything with the words "Hello world", but with wrong punctuation and capitalization, you will get some positive feedback, but still fail overall. You need to print an exact match.', NULL, 'print "..."', 'print "Hello, world!"', 'import re', 4);
194
ALTER TABLE exercise ENABLE TRIGGER ALL;
197
-- Data for Name: exercise_attempt; Type: TABLE DATA; Schema: public; Owner: -
200
ALTER TABLE exercise_attempt DISABLE TRIGGER ALL;
204
ALTER TABLE exercise_attempt ENABLE TRIGGER ALL;
207
-- Data for Name: exercise_save; Type: TABLE DATA; Schema: public; Owner: -
210
ALTER TABLE exercise_save DISABLE TRIGGER ALL;
214
ALTER TABLE exercise_save ENABLE TRIGGER ALL;
217
-- Data for Name: group_invitation; Type: TABLE DATA; Schema: public; Owner: -
220
ALTER TABLE group_invitation DISABLE TRIGGER ALL;
224
ALTER TABLE group_invitation ENABLE TRIGGER ALL;
227
-- Data for Name: group_member; Type: TABLE DATA; Schema: public; Owner: -
230
ALTER TABLE group_member DISABLE TRIGGER ALL;
232
INSERT INTO group_member (loginid, groupid) VALUES (4, 1);
233
INSERT INTO group_member (loginid, groupid) VALUES (5, 1);
236
ALTER TABLE group_member ENABLE TRIGGER ALL;
239
-- Data for Name: login; Type: TABLE DATA; Schema: public; Owner: -
242
ALTER TABLE login DISABLE TRIGGER ALL;
244
INSERT INTO login (loginid, login, passhash, state, admin, unixid, nick, pass_exp, acct_exp, last_login, svn_pass, email, fullname, studentid, settings) VALUES (1, 'admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'enabled', true, 5000, 'Anne Admin', NULL, NULL, '2009-12-08 11:44:02.285862', 'password', NULL, 'Anne Admin', NULL, NULL);
245
INSERT INTO login (loginid, login, passhash, state, admin, unixid, nick, pass_exp, acct_exp, last_login, svn_pass, email, fullname, studentid, settings) VALUES (2, 'lecturer', '5f4dcc3b5aa765d61d8327deb882cf99', 'enabled', false, 5001, 'Larry Lecturer', NULL, NULL, '2009-12-08 12:12:16.375628', 'password', NULL, 'Larry Lecturer', NULL, NULL);
246
INSERT INTO login (loginid, login, passhash, state, admin, unixid, nick, pass_exp, acct_exp, last_login, svn_pass, email, fullname, studentid, settings) VALUES (3, 'tutor', '5f4dcc3b5aa765d61d8327deb882cf99', 'enabled', false, 5002, 'Terry Tutor', NULL, NULL, '2009-12-08 19:08:59.817505', 'password', NULL, 'Terry Tutor', NULL, NULL);
247
INSERT INTO login (loginid, login, passhash, state, admin, unixid, nick, pass_exp, acct_exp, last_login, svn_pass, email, fullname, studentid, settings) VALUES (4, 'studenta', '5f4dcc3b5aa765d61d8327deb882cf99', 'enabled', false, 5003, 'Alice Student', NULL, NULL, '2009-12-08 12:11:46.349133', 'password', NULL, 'Alice Student', NULL, NULL);
248
INSERT INTO login (loginid, login, passhash, state, admin, unixid, nick, pass_exp, acct_exp, last_login, svn_pass, email, fullname, studentid, settings) VALUES (5, 'studentb', '5f4dcc3b5aa765d61d8327deb882cf99', 'no_agreement', false, 5004, 'Bob Student', NULL, NULL, NULL, NULL, NULL, 'Bob Student', NULL, NULL);
251
ALTER TABLE login ENABLE TRIGGER ALL;
254
-- Data for Name: offering; Type: TABLE DATA; Schema: public; Owner: -
257
ALTER TABLE offering DISABLE TRIGGER ALL;
259
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (1, 1, 1, 'This subject will introduce you to the basics of IVLE.', 'http://www.ivle.org/example/101', false, NULL, 'none');
260
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (2, 2, 2, 'Enhancing your understanding of IVLE''s usage and operation, this subject will consolidate and expand your general IVLE knowledge.', 'http://www.ivle.org/example/102', false, NULL, 'none');
261
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (3, 1, 3, 'This subject will introduce you to the basics of IVLE, again.', 'http://www.ivle.org/example/101', false, NULL, 'none');
262
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (4, 3, 3, 'This subject will provide you with a working knowledge of advanced IVLE concepts.', 'http://www.ivle.org/example/201', false, NULL, 'none');
263
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (5, 2, 4, 'Enhancing your understanding of IVLE''s usage and operation, this subject will consolidate and expand your general IVLE knowledge, again.', 'http://www.ivle.org/example/102', false, NULL, 'none');
264
INSERT INTO offering (offeringid, subject, semesterid, description, url, show_worksheet_marks, worksheet_cutoff, groups_student_permissions) VALUES (6, 4, 4, 'After undertaking this subject, you should be a master of all things IVLEy.', 'http://www.ivle.org/example/202', false, NULL, 'none');
267
ALTER TABLE offering ENABLE TRIGGER ALL;
270
-- Data for Name: project; Type: TABLE DATA; Schema: public; Owner: -
273
ALTER TABLE project DISABLE TRIGGER ALL;
275
INSERT INTO project (projectid, short_name, name, synopsis, url, projectsetid, deadline) VALUES (1, 'phase1', 'Phase 1', 'This is the first project in Intermediate IVLE.', NULL, 1, '3009-08-21 18:00:00');
276
INSERT INTO project (projectid, short_name, name, synopsis, url, projectsetid, deadline) VALUES (2, 'phase2', 'Phase 2', 'This is the second project in Intermediate IVLE.
277
Get into groups of 3.', NULL, 2, '3009-09-11 18:00:00');
278
INSERT INTO project (projectid, short_name, name, synopsis, url, projectsetid, deadline) VALUES (3, 'phase3', 'Phase 3', 'This is the final project in Intermediate IVLE.
279
Complete this with the same group as Phase 2.', NULL, 2, '2009-09-25 18:00:00');
282
ALTER TABLE project ENABLE TRIGGER ALL;
285
-- Data for Name: project_extension; Type: TABLE DATA; Schema: public; Owner: -
288
ALTER TABLE project_extension DISABLE TRIGGER ALL;
292
ALTER TABLE project_extension ENABLE TRIGGER ALL;
295
-- Data for Name: project_group; Type: TABLE DATA; Schema: public; Owner: -
298
ALTER TABLE project_group DISABLE TRIGGER ALL;
300
INSERT INTO project_group (groupnm, groupid, projectsetid, nick, createdby, epoch) VALUES ('group1', 1, 2, 'group1', 2, '2009-12-08 17:04:42.981005');
303
ALTER TABLE project_group ENABLE TRIGGER ALL;
306
-- Data for Name: project_mark; Type: TABLE DATA; Schema: public; Owner: -
309
ALTER TABLE project_mark DISABLE TRIGGER ALL;
313
ALTER TABLE project_mark ENABLE TRIGGER ALL;
316
-- Data for Name: project_set; Type: TABLE DATA; Schema: public; Owner: -
319
ALTER TABLE project_set DISABLE TRIGGER ALL;
321
INSERT INTO project_set (projectsetid, offeringid, max_students_per_group) VALUES (1, 2, NULL);
322
INSERT INTO project_set (projectsetid, offeringid, max_students_per_group) VALUES (2, 2, 3);
325
ALTER TABLE project_set ENABLE TRIGGER ALL;
328
-- Data for Name: project_submission; Type: TABLE DATA; Schema: public; Owner: -
331
ALTER TABLE project_submission DISABLE TRIGGER ALL;
335
ALTER TABLE project_submission ENABLE TRIGGER ALL;
338
-- Data for Name: semester; Type: TABLE DATA; Schema: public; Owner: -
341
ALTER TABLE semester DISABLE TRIGGER ALL;
343
INSERT INTO semester (semesterid, year, url_name, state, display_name, code) VALUES (1, '2009', '1', 'past', 'semester 1', 'SM1');
344
INSERT INTO semester (semesterid, year, url_name, state, display_name, code) VALUES (2, '2009', '2', 'current', 'semester 2', 'SM2');
345
INSERT INTO semester (semesterid, year, url_name, state, display_name, code) VALUES (3, '2010', '1', 'future', 'semester 1', 'SM1');
346
INSERT INTO semester (semesterid, year, url_name, state, display_name, code) VALUES (4, '2010', '2', 'future', 'semester 2', 'SM2');
349
ALTER TABLE semester ENABLE TRIGGER ALL;
352
-- Data for Name: subject; Type: TABLE DATA; Schema: public; Owner: -
355
ALTER TABLE subject DISABLE TRIGGER ALL;
357
INSERT INTO subject (subjectid, subj_code, subj_name, subj_short_name) VALUES (1, '100101', 'Introduction to IVLE', 'ivle-101');
358
INSERT INTO subject (subjectid, subj_code, subj_name, subj_short_name) VALUES (2, '100102', 'Intermediate IVLE', 'ivle-102');
359
INSERT INTO subject (subjectid, subj_code, subj_name, subj_short_name) VALUES (3, '100201', 'Advanced IVLE', 'ivle-201');
360
INSERT INTO subject (subjectid, subj_code, subj_name, subj_short_name) VALUES (4, '100202', 'Mastering IVLE', 'ivle-202');
363
ALTER TABLE subject ENABLE TRIGGER ALL;
366
-- Data for Name: suite_variable; Type: TABLE DATA; Schema: public; Owner: -
369
ALTER TABLE suite_variable DISABLE TRIGGER ALL;
371
INSERT INTO suite_variable (varid, suiteid, var_name, var_value, var_type, arg_no) VALUES (1, 1, '', '4', 'arg', 0);
372
INSERT INTO suite_variable (varid, suiteid, var_name, var_value, var_type, arg_no) VALUES (2, 2, '', '5', 'arg', 0);
375
ALTER TABLE suite_variable ENABLE TRIGGER ALL;
378
-- Data for Name: test_case; Type: TABLE DATA; Schema: public; Owner: -
381
ALTER TABLE test_case DISABLE TRIGGER ALL;
383
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (1, 1, 'Calculates factorial correctly', 'Wrong answer', 'ignore', 0);
384
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (2, 1, 'Doesn''t use functools', 'You used functools, you arrogant git', 'ignore', 1);
385
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (3, 2, 'Calculates factorial correctly', 'Wrong answer', 'ignore', 0);
386
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (5, 3, 'Main worked correctly', 'Main printed something else as well. You should only print out the answer.', 'ignore', 1);
387
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (4, 3, 'Main printout included the correct answer', 'Main didn''t print out the correct answer', 'ignore', 0);
388
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (6, 1, 'Doesn''t use __import__', 'You used __import__, you subversive git!', 'ignore', 2);
389
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (7, 4, 'Prints the correct words', 'Didn''t print the words "Hello world" at all', 'ignore', 0);
390
INSERT INTO test_case (testid, suiteid, passmsg, failmsg, test_default, seq_no) VALUES (10, 4, 'Prints "Hello, world!" exactly', 'Did not print "Hello, world!" exactly', 'ignore', 1);
393
ALTER TABLE test_case ENABLE TRIGGER ALL;
396
-- Data for Name: test_case_part; Type: TABLE DATA; Schema: public; Owner: -
399
ALTER TABLE test_case_part DISABLE TRIGGER ALL;
401
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (1, 1, 'result', 'match', '', NULL);
402
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (2, 2, 'code', 'check', 'lambda solution, attempt: ''functools'' not in attempt', NULL);
403
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (3, 3, 'result', 'match', '', NULL);
404
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (5, 5, 'stdout', 'norm', 'lambda x: x.strip() # Allow leading or trailing whitespace', NULL);
405
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (4, 4, 'stdout', 'check', 'lambda solution, attempt: solution.strip() in attempt # Substring test', NULL);
406
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (6, 6, 'code', 'check', 'lambda solution, attempt: ''__import__'' not in attempt', NULL);
407
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (10, 10, 'stdout', 'match', 'lambda solution, attempt: re.match("hello[^a-z]*world[^a-z]*", attempt.lower())', NULL);
408
INSERT INTO test_case_part (partid, testid, part_type, test_type, data, filename) VALUES (7, 7, 'stdout', 'check', 'lambda solution, attempt: re.match("hello[^a-z]*world[^a-z]*", attempt.lower())', NULL);
411
ALTER TABLE test_case_part ENABLE TRIGGER ALL;
414
-- Data for Name: test_suite; Type: TABLE DATA; Schema: public; Owner: -
417
ALTER TABLE test_suite DISABLE TRIGGER ALL;
419
INSERT INTO test_suite (suiteid, exerciseid, description, seq_no, function, stdin) VALUES (2, 'factorial', 'Test fac(5)', 1, 'fac', '');
420
INSERT INTO test_suite (suiteid, exerciseid, description, seq_no, function, stdin) VALUES (1, 'factorial', 'Test fac(4)', 0, 'fac', '');
421
INSERT INTO test_suite (suiteid, exerciseid, description, seq_no, function, stdin) VALUES (3, 'factorial', 'Test main', 2, 'main', '4
423
INSERT INTO test_suite (suiteid, exerciseid, description, seq_no, function, stdin) VALUES (4, 'hello', 'Prints "Hello, world!" exactly', 0, '', '');
426
ALTER TABLE test_suite ENABLE TRIGGER ALL;
429
-- Data for Name: worksheet; Type: TABLE DATA; Schema: public; Owner: -
432
ALTER TABLE worksheet DISABLE TRIGGER ALL;
434
INSERT INTO worksheet (worksheetid, offeringid, identifier, name, data, data_xhtml_cache, assessable, published, seq_no, format) VALUES (1, 2, 'worksheet1', 'Worksheet Basics', 'IVLE allows lecturers and tutors to create worksheets, which are presented to students, optionally, for assessment.
436
Worksheets are reStructuredText (rich text) documents which can present students with information or tutorials, much like a textbook. For example, we might explain that "the ``print`` statement in Python lets you print text to the screen".
438
We can use any reStructuredText markup, such as **bold** and `links <http://ivle.org>`_. We can also embed exercises. For example, we might invite students to "try out the ``print`` statement in the following exercise".
440
Beginning a line with ``.. exercise:: <exercise-name>`` embeds an exercise in a worksheet, like this:
444
Now, the student may try out the above exercise, and submit it as many times as (s)he wishes. Once they have it correct, they will receive a point on their assessment.
446
Here is a second exercise. This one involves writing functions, and has multiple parts. The test suite will test each part individually.
448
.. exercise:: factorial
449
', NULL, true, true, 0, 'rst');
452
ALTER TABLE worksheet ENABLE TRIGGER ALL;
455
-- Data for Name: worksheet_exercise; Type: TABLE DATA; Schema: public; Owner: -
458
ALTER TABLE worksheet_exercise DISABLE TRIGGER ALL;
460
INSERT INTO worksheet_exercise (ws_ex_id, worksheetid, exerciseid, seq_no, active, optional) VALUES (2, 1, 'hello', 0, true, false);
461
INSERT INTO worksheet_exercise (ws_ex_id, worksheetid, exerciseid, seq_no, active, optional) VALUES (1, 1, 'factorial', 0, true, false);
464
ALTER TABLE worksheet_exercise ENABLE TRIGGER ALL;
467
-- PostgreSQL database dump complete