source: WAeUP_SRP/trunk/skins/waeup_student/getSessionResults.py @ 11107

Last change on this file since 11107 was 2486, checked in by Henrik Bettermann, 17 years ago

show session_results_view even if results are missing

File size: 3.3 KB
RevLine 
[1174]1# $Id: display_session_results.py 1166 2006-12-31 18:11:47Z henrik $
2"""
3process the Application Form
4return html renderer + psm
5"""
6import DateTime
7current = DateTime.DateTime()
[1510]8try:
9    from Products.zdb import set_trace
10except:
11    def set_trace():
12        pass
[1174]13pr = context.portal_registration
[1417]14request = context.REQUEST
[1174]15returning = context.returning_import
16results = context.results_import
[1317]17scatalog = context.students_catalog
[1174]18
19mtool = context.portal_membership
20member = mtool.getAuthenticatedMember()
21member_id = str(member)
22
23if mtool.isAnonymousUser():
24    return None
25info = {}
26requested_id = context.getStudentId()
27if requested_id and not context.isStaff() and member_id != requested_id:
[1258]28    import logging
[1571]29    logger = logging.getLogger('Skins.getSessionResults')
30    logger.info('%s tried to access %s' % (member_id,requested_id))
[1174]31    return None
32elif context.isStaff():
33    student_id = requested_id
34else:
35    student_id = member_id
36
37students_object = context.portal_url.getPortalObject().campus.students
[1315]38##student = getattr(students_object, student_id)
39##clear = getattr(student,'clearance',None)
40##if clear:
41##    value = clear.getContent().matric_no
42##else:
43##    return None
[1174]44
[1317]45res = scatalog(id = student_id)
46matric_no = res[0].matric_no
[1448]47student_from_cat = res[0]
[1317]48
[1753]49#res = returning(matric_no = matric_no)
50#if res:
51#    student_from_returning = res[0]
52#else:
53#    return None
[1417]54
[1900]55if matric_no:
56    res = results(matric_no = matric_no)
57    results = res
[2466]58else:
[1900]59    results = []
[1174]60
61
62sem1 = []
63sem2 = []
64with_courses_cat = hasattr(context,'courses_catalog')
65fields = context.results_import.schema()
[1179]66gpa = 0
67course_count = 0
[1183]68session = None
[2466]69level = None
[2485]70verdict = None
[1468]71
[1174]72for r in results:
[1468]73    if session is None:
[1183]74        session = r.Session
[2466]75    if level is None:
[2485]76        level = r.Level
77    if verdict is None:
[2486]78        verdict = r.Verdict
[1174]79    result = {}
80    for field in fields:
81        result[field] = getattr(r,field)
82    if with_courses_cat:
83        res = context.courses_catalog(code = r.CosCode)
84    if with_courses_cat and res:
85        result['title'] = res[0].title
[1179]86        result['credits'] = res[0].credits
87        try:
88            weight = int(result['WEIGHT'])
89            credits = int(res[0].credits)
90            gpa_course =  int(res[0].credits) * weight
91            gpa += gpa_course
92            course_count += credits
93            result['gpa'] = 'ok'
94        except:
[1448]95            result['gpa'] = 'N/A'
[1174]96    else:
[1448]97        result['title'] = ""
98        result['credits'] = "N/A"
99        result['gpa'] = 'N/A'
[1684]100        #result['WEIGHT'] = 'N/A'
101        #result['GRADE'] = 'N/A'
[1174]102    if r.Semester == '2':
103        sem2.append(result)
104    else:
105        sem1.append(result)
[1179]106if course_count:
107    gpa = float(gpa) / course_count
108    gpa = "%4.2f" % gpa
[1413]109
[1543]110#set_trace()
[2485]111#verdict_voc = context.portal_vocabularies.verdicts
112#verdict_code = student_from_cat.verdict
113#if verdict_code:
114#    info['verdict'] = verdict = verdict_voc.get(verdict_code,'N/A').upper()
115#else:
116#    info['verdict'] = verdict = 'N/A'
[1468]117
[2485]118if verdict:
119    info['verdict'] = verdict
[2486]120else:
121    info['verdict'] = 'N/A'   
[2466]122if session:
123    info['session'] = session
[1448]124else:
[2466]125    info['session'] = 'N/A'
126if level:
127    info['level'] = level
128else:
[1448]129    info['level'] = 'N/A'
[1179]130info['gpa'] = gpa
[1174]131info['results'] = (sem1, sem2)
[1753]132#info['student_from_returning'] = student_from_returning
[1411]133info['student'] = student_from_cat
[1174]134info['s_id'] = student_id
135return info
[1179]136
Note: See TracBrowser for help on using the repository browser.