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

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

DE students start with level 200 und must be able to register courses without verdict

  • Property svn:keywords set to Id
File size: 2.5 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 2424 2007-10-23 12:40:06Z 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' or (sbrain.mode.startswith('de') and sbrain.level == '200'))
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.