## Script (Python) "getSessionResults"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: display_session_results.py 1166 2006-12-31 18:11:47Z henrik $
"""
process the Application Form
return html renderer + psm
"""
import DateTime
current = DateTime.DateTime()
pr = context.portal_registration

returning = context.returning_import
results = context.results_import

mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
member_id = str(member)

if mtool.isAnonymousUser():
    return None
info = {}
#from Products.zdb import set_trace
#set_trace()
requested_id = context.getStudentId()
if requested_id and not context.isStaff() and member_id != requested_id:
    logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
    return None
elif context.isStaff():
    student_id = requested_id
else:
    student_id = member_id

students_object = context.portal_url.getPortalObject().campus.students
student = getattr(students_object, student_id)


clear = getattr(student,'clearance',None)
if clear:
    value = clear.getContent().matric_no
else:
    return None

res = returning(matric_no = value)
student = res[0]
res = results(matric_no = value)
results = res


sem1 = []
sem2 = []
with_courses_cat = hasattr(context,'courses_catalog')
fields = context.results_import.schema()
for r in results:
    result = {}
    for field in fields:
        result[field] = getattr(r,field)
    if with_courses_cat:
        res = context.courses_catalog(code = r.CosCode)
    if with_courses_cat and res:
        result['title'] = res[0].title
    else:
        result['title'] = "To Be Determined"
    if r.Semester == '2':
        sem2.append(result)
    else:
        sem1.append(result)
info['results'] = (sem1, sem2)
info['student'] = student
info['s_id'] = student_id
return info
