source: WAeUP_SRP/unilorin/waeup_custom/getTranscriptInfo.py @ 3616

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

transcript for demo purposes

File size: 2.2 KB
Line 
1## Script (Python) "getTranscriptInfo"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=student=None
8##title=
9##
10# $Id: getStudyLevelInfo.py 2760 2007-11-26 07:39:15Z henrik $
11"""
12return Info about the Studylevel
13try:
14    from Products.zdb import set_trace
15except:
16    def set_trace():
17        pass
18"""
19
20request = context.REQUEST
21response = request.RESPONSE
22import logging
23logger = logging.getLogger('Skins.getTranscriptInfo')
24info = context.waeup_tool.getAccessInfo(context)
25student_id = info['student_id']
26if student_id is None:
27    return None
28   
29mtool = context.portal_membership   
30if mtool.isAnonymousUser() or not context.isSectionOfficer():
31    return None   
32
33mtool = context.portal_membership
34member = mtool.getAuthenticatedMember()
35member_id = str(member)
36
37course_results = context.course_results
38
39
40student_record = context.students_catalog.getRecordByKey(student_id)
41info['student_record'] = context.getFormattedStudentEntry(student_record)
42
43
44year_courses = [[],[],[],[],[],[],[],[],[]]
45year_details = [{'year':0},{'year':1},{'year':2},{'year':3},{'year':4},{'year':5},{'year':6},{'year':7},{'year':8}]
46
47courses = course_results.getAllCourses(student_id)
48
49for course in courses:
50    year = divmod(int(course['level_id']),100)[0]
51    year_courses[year].append(course)
52    if not getattr(year_details[year],'session',None):
53        year_details[year]['session'] = context.portal_vocabularies.sessions.get(course['session_id'])
54
55year_counter = 0
56for year in year_courses:
57    gpa = 0
58    total_credits = 0
59    for course in year:
60        gpa += int(course['weight']) * int(course['credits'])
61        total_credits += int(course['credits'])   
62    if gpa and total_credits:
63        year_details[year_counter]['total_credits'] = total_credits   
64        year_details[year_counter]['gpa'] = "%4.2f" % (float(gpa)/int(total_credits))
65    year.sort(cmp=lambda x,y: cmp("%(semester)s%(code)s" % x,
66                                         "%(semester)s%(code)s" % y))
67    year_counter += 1
68   
69info['year_details'] = year_details
70info['year_courses'] = year_courses
71
72return info
73
74
Note: See TracBrowser for help on using the repository browser.