source: WAeUP_SRP/base/skins/waeup_student/getStudyLevelInfo.py @ 2690

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

fix course registration for returning students

  • Property svn:keywords set to Id
File size: 3.4 KB
Line 
1## Script (Python) "getStudyLevelInfo"
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 2664 2007-11-15 14:35:05Z henrik $
11"""
12return Info about the Studylevel
13"""
14
15wf = context.portal_workflow
16mtool = context.portal_membership
17if mtool.isAnonymousUser():
18    return None
19member = mtool.getAuthenticatedMember()
20member_id = str(member)
21
22try:
23    from Products.zdb import set_trace
24except:
25    def set_trace():
26        pass
27
28
29# from Products.AdvancedQuery import Eq, Between, Le,In
30# try:
31#     aq_portal = context.portal_catalog.evalAdvancedQuery
32# except:
33#     aq_portal = context.portal_catalog_real.evalAdvancedQuery
34course_results = context.course_results
35request = context.REQUEST
36response = request.RESPONSE
37import logging
38logger = logging.getLogger('Skins.getStudyLevelInfo')
39
40student_id = context.getStudentId()
41level_id = context.getId()
42
43info = {}
44info['is_so'] = is_so = context.isSectionOfficer()
45info['is_student'] = is_student = context.isStudent()
46info['is_ca'] = is_ca = context.isCourseAdviser()
47info['student'] = student = context.students_catalog(id=student_id)[0]
48info['review_state'] = review_state = student.review_state
49info['view_only'] =  review_state != "school_fee_paid"
50
51
52has_paid =  review_state == 'school_fee_paid'
53
54info['show_check_boxes'] =  (is_ca and has_paid) or\
55                            (is_student and has_paid) or\
56                            (is_so)
57
58
59info['choosen_ids'] = request.get('ids',[])
60info['status_info'] = ""
61if is_student:
62    if review_state == 'courses_registered':
63        info['status_info'] = "Request for Course Validation pending"
64    elif review_state == 'courses_validated':
65        info['status_info'] = "Courses validated"
66elif is_ca:
67    if review_state == 'courses_registered':
68        info['status_info'] = "Please validate these Courses"
69    elif review_state == 'courses_validated':
70        info['status_info'] = "Courses validated"
71info['doc'] = context.getContent()
72cert_id = student.course
73info['cert_id'] = cert_id
74if context.objectIds():
75    course_results.moveResultsHere(context,student_id)
76    logger.info("%s initiated moveResultsHere for %s in level %s" % (member_id,student_id,level_id))
77credits_total,carry_overs,normal1,normal2,normal3 = course_results.getCourses(student_id,level_id)
78info['credits_total'] = credits_total
79max_credits = 50
80if context.getId() == student.end_level:
81    max_credits = 51
82info['max_credits'] = max_credits
83info['credits_exceeded'] = credits_total > max_credits
84current_session = student.session
85
86info['submission_allowed']= review_state in  ('school_fee_paid','returning') and has_paid
87info['validation_allowed']= review_state == 'courses_registered'
88info['rejection_allowed']= review_state in ('courses_registered', 'courses_validated',)
89
90
91# carry_overs.sort(cmp_semester_id)
92info['carry_overs'] = carry_overs
93# normal.sort(cmp_semester_id)
94info['normal1'] = normal1
95info['normal2'] = normal2
96info['normal3'] = normal3
97
98info['data_missing'] = not info['normal1'] and not info['normal2'] and not info['normal3']
99info['spillover'] = student.level > student.end_level
100
101students_object = context.portal_url.getPortalObject().campus.students
102student = getattr(students_object, student_id)
103info['app'] = student.application
104info['app_doc'] = student.application.getContent()
105
106return info
Note: See TracBrowser for help on using the repository browser.