30
35
req.scripts = ["media/groups/groups.js"]
31
36
req.write_html_head_foot = True # Have dispatch print head and foot
34
38
req.write('<div id="ivle_padding">\n')
35
req.write("<p>Group Management Panel (Under Construction)</p>\n")
39
# Show a group panel per enrolment
42
subjects = db.get_enrolment(req.user.login)
43
# Sort by year,semester,subj_code (newer subjects first)
44
# Leave all fields as strings, just in case (eg. semester='y')
45
subjects.sort(key=lambda (_oid,subj_code,_sn,_ssn,year,semester):
46
(year,semester,subj_code),
48
if len(subjects) == 0:
49
req.write("<p>Error: You are not currently enrolled in any subjects."
51
for offeringid,_,subj_name,_,_,_ in subjects:
52
show_subject_panel(req, db, offeringid, subj_name)
57
def show_subject_panel(req, db, offeringid, subj_name):
59
Show the group management panel for a particular subject.
62
req.write("<h1>%s</h1>\n" % cgi.escape(subj_name))
63
# Get the groups this user is in, for this offering
64
groups = db.get_groups_by_user(req.user.login, offeringid=offeringid)
65
for groupid, groupnm, group_nick, is_member in groups:
66
req.write("<h2>%s (%s)</h2>\n" %
67
(cgi.escape(group_nick), cgi.escape(groupnm)))
69
req.write('<p>You are in this group.\n'
70
' <input type="button" onclick="manage("%s")" '
71
'value="Manage" /></p>\n' % (cgi.escape(groupnm)))
73
req.write('<p>You have been invited to this group.</p>\n')
75
'<input type="button" '
76
'onclick="accept("%(groupnm)s")" '
78
'<input type="button" '
79
'onclick="decline("%(groupnm)s")" '
80
'value="Decline" />\n'
81
'</p>\n' % {"groupnm": cgi.escape(groupnm)})
82
req.write("<h3>Members</h3>\n")
83
req.write("<table>\n")
84
# TODO: Fill in members table
85
req.write("</table>\n")
87
if True: # XXX Only if offering allows students to create groups
88
req.write('<input type="button" onclick="create(%d)" '
89
'value="Create Group" />\n' % offeringid)