832
832
(SELECT loginid FROM login WHERE login=%s),
833
833
(SELECT offeringid
834
834
FROM (offering INNER JOIN subject
835
ON subject.subjectid = offering.subject)
835
ON subject.subjectid = offering.subject
837
ON semester.semesterid = offering.semesterid)
836
838
WHERE subj_code=%s AND semester=%s AND year=%s)
837
839
);""" % (_escape(login), _escape(subj_code), _escape(semester),
856
858
SELECT offering.offeringid, subj_code, subj_name, subj_short_name,
858
FROM login, enrolment, offering, subject
859
semester.year, semester.semester
860
FROM login, enrolment, offering, subject, semester
859
861
WHERE enrolment.offeringid=offering.offeringid
860
862
AND login.loginid=enrolment.loginid
861
863
AND offering.subject=subject.subjectid
864
AND semester.semesterid=offering.semesterid
862
866
AND login=%s;""" % _escape(login)
878
882
if offeringid is None:
879
883
and_offering = ""
881
and_offering = "AND project_group.offeringid = %s" % \
885
and_projectset_table = ", project_set"
887
AND project_group.projectsetid = project_set.projectsetid
888
AND project_set.offeringid = %s""" % _escape(offeringid)
883
889
# Union both the groups this user is a member of, and the groups this
884
890
# user is invited to.
886
892
SELECT project_group.groupid, groupnm, project_group.nick, True
887
FROM project_group, group_member, login
893
FROM project_group, group_member, login %(and_projectset_table)s
888
894
WHERE project_group.groupid = group_member.groupid
889
895
AND group_member.loginid = login.loginid
890
896
AND login = %(login)s
893
899
SELECT project_group.groupid, groupnm, project_group.nick, False
894
FROM project_group, group_invitation, login
900
FROM project_group, group_invitation, login %(and_projectset_table)s
895
901
WHERE project_group.groupid = group_invitation.groupid
896
902
AND group_invitation.loginid = login.loginid
897
903
AND login = %(login)s
899
;""" % {"login": _escape(login), "and_offering": and_offering}
905
;""" % {"login": _escape(login), "and_offering": and_offering,
906
"and_projectset_table": and_projectset_table}
902
909
# Convert 't' -> True, 'f' -> False