source: WAeUP_SRP/base/skins/waeup_student/getStudyCourseInfo.py @ 2363

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

register courses must be possible for all students in level 100 (in custom)

The jamb_reg_no-starting-with criteria is deprecated. Part-time students with different reg numbers were not able to regoster their courses.

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1## Script (Python) "getStudyCourseInfo"
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: getStudyCourseInfo.py 2325 2007-10-07 06:35:00Z henrik $
11"""
12return Info about the Students StudyCourse
13"""
14
15mtool = context.portal_membership
16if mtool.isAnonymousUser():
17    return None
18
19try:
20    from Products.zdb import set_trace
21except:
22    def set_trace():
23        pass
24
25request = context.REQUEST
26
27wftool = context.portal_workflow
28path_info = request.get('PATH_INFO').split('/')
29
30info = {}
31info['is_so'] = context.isSectionOfficer()
32info['action'] = "%s" % context.absolute_url()
33info['choosen_ids'] = request.get('ids',[])
34course  = info['doc'] = context.getContent()
35student_id = context.getStudentId()
36res = context.students_catalog(id = student_id)
37if not res:
38    return None
39sbrain = res[0]
40info['student'] = sbrain
41cert_id = sbrain.course
42res = context.portal_catalog(portal_type = "Certificate", id = cert_id)
43ci = {}
44if res:
45    info['cert_id'] = cert_id
46    brain = res[0]
47    ci['study_course'] = brain.getId
48    ci['title'] = brain.Title
49    pl = brain.getPath().split('/')
50    ci['faculty'] = pl[-4]
51    ci['department'] = pl[-3]
52    info['course_doc'] = ci
53else:
54    info['cert_id'] = 'N/A'
55    ci['study_course'] = 'N/A'
56    ci['title'] = 'N/A'
57    ci['faculty'] = 'N/A'
58    ci['department'] = 'N/A'
59    info['course_doc'] = ci
60
61items = []
62current_level = sbrain.level
63levels = context.objectIds()
64review_state = wftool.getInfoFor(context,'review_state',None)
65student_review_state = context.getStudentReviewState()
66if review_state != 'content_addable' and student_review_state == 'school_fee_paid': #and context.isStudent():
67    wftool.doActionFor(context,'close_for_edit')
68may_register = (student_review_state in ('school_fee_paid',)) and\
69               current_level not in levels and\
70               (sbrain.verdict in ('A','B','C','F','J','L','M') or sbrain.level == '100')
71
72levels.sort()
73info['create_level'] = None
74if may_register:
75    info['create_level'] = current_level
76for l in levels:
77    row = {}
78    row['id'] = l
79    #row['title'] = "Level %s" % l
80    row['title'] = context.portal_vocabularies.levels_voc[l]
81    row['url'] = "%s/%s" % (context.absolute_url(),l)
82    items.append(row)
83
84info['items'] = items
85
86try:
87    info['verdict'] = context.portal_vocabularies.verdicts.get(info['doc'].current_verdict).upper()
88except:
89    info['verdict'] = course.current_verdict
90
91return info
92
Note: See TracBrowser for help on using the repository browser.