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

Last change on this file since 1501 was 1497, checked in by Henrik Bettermann, 18 years ago

beautifying

File size: 3.1 KB
Line 
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()
8pr = context.portal_registration
9
10request = context.REQUEST
11returning = context.returning_import
12results = context.results_import
13scatalog = context.students_catalog
14
15mtool = context.portal_membership
16member = mtool.getAuthenticatedMember()
17member_id = str(member)
18
19if mtool.isAnonymousUser():
20    return None
21info = {}
22#from Products.zdb import set_trace
23#set_trace()
24requested_id = context.getStudentId()
25if requested_id and not context.isStaff() and member_id != requested_id:
26    import logging
27    logger = logging.getLogger('Student.SessionResults.Info')
28    logger.info('"%s", "tried to access", "%s"' % (member_id,requested_id))
29    return None
30elif context.isStaff():
31    student_id = requested_id
32else:
33    student_id = member_id
34
35students_object = context.portal_url.getPortalObject().campus.students
36##student = getattr(students_object, student_id)
37##clear = getattr(student,'clearance',None)
38##if clear:
39##    value = clear.getContent().matric_no
40##else:
41##    return None
42
43res = scatalog(id = student_id)
44matric_no = res[0].matric_no
45student_from_cat = res[0]
46
47res = returning(matric_no = matric_no)
48if res:
49    student_from_returning = res[0]
50else:
51    return None
52
53res = results(matric_no = matric_no)
54results = res
55
56
57sem1 = []
58sem2 = []
59with_courses_cat = hasattr(context,'courses_catalog')
60fields = context.results_import.schema()
61gpa = 0
62course_count = 0
63session = None
64
65for r in results:
66    if session is None:
67        session = r.Session
68    result = {}
69    for field in fields:
70        result[field] = getattr(r,field)
71    if with_courses_cat:
72        res = context.courses_catalog(code = r.CosCode)
73    if with_courses_cat and res:
74        result['title'] = res[0].title
75        result['credits'] = res[0].credits
76        try:
77            weight = int(result['WEIGHT'])
78            credits = int(res[0].credits)
79            gpa_course =  int(res[0].credits) * weight
80            gpa += gpa_course
81            course_count += credits
82            result['gpa'] = 'ok'
83        except:
84            result['gpa'] = 'N/A'
85    else:
86        result['title'] = ""
87        result['credits'] = "N/A"
88        result['gpa'] = 'N/A'
89        result['WEIGHT'] = 'N/A'
90        result['GRADE'] = 'N/A'
91    if r.Semester == '2':
92        sem2.append(result)
93    else:
94        sem1.append(result)
95if course_count:
96    gpa = float(gpa) / course_count
97    gpa = "%4.2f" % gpa
98
99
100if student_from_cat.verdict:
101    verdict_voc = context.portal_vocabularies.verdicts
102    info['verdict'] = verdict_voc.get(student_from_cat.verdict).upper()
103else:
104    info['verdict'] = 'N/A'
105
106if student_from_cat.level:
107    if student_from_cat.sex:
108        info['sex'] = 'F'
109    else:
110        info['sex'] = 'M'
111    info['level'] = int(student_from_cat.level)-100
112else:
113    info['sex'] = 'N/A'
114    info['level'] = 'N/A'
115
116info['session'] = session
117info['gpa'] = gpa
118info['results'] = (sem1, sem2)
119info['student_from_returning'] = student_from_returning
120info['student'] = student_from_cat
121info['s_id'] = student_id
122return info
123
Note: See TracBrowser for help on using the repository browser.