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

Last change on this file since 2433 was 2424, checked in by Henrik Bettermann, 18 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
RevLine 
[845]1## Script (Python) "getStudyCourseInfo"
[723]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##
[805]10# $Id: getStudyCourseInfo.py 2424 2007-10-23 12:40:06Z henrik $
[723]11"""
12return Info about the Students StudyCourse
13"""
[1783]14
15mtool = context.portal_membership
16if mtool.isAnonymousUser():
17    return None
18
[1494]19try:
20    from Products.zdb import set_trace
21except:
22    def set_trace():
23        pass
24
[723]25request = context.REQUEST
26
[1490]27wftool = context.portal_workflow
[723]28path_info = request.get('PATH_INFO').split('/')
29
30info = {}
[1380]31info['is_so'] = context.isSectionOfficer()
[1650]32info['action'] = "%s" % context.absolute_url()
[723]33info['choosen_ids'] = request.get('ids',[])
[1380]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]
[1403]40info['student'] = sbrain
[1380]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:
[1816]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
[2010]60
[723]61items = []
[1492]62current_level = sbrain.level
63levels = context.objectIds()
64review_state = wftool.getInfoFor(context,'review_state',None)
[1565]65student_review_state = context.getStudentReviewState()
[1571]66if review_state != 'content_addable' and student_review_state == 'school_fee_paid': #and context.isStudent():
[1492]67    wftool.doActionFor(context,'close_for_edit')
[1500]68may_register = (student_review_state in ('school_fee_paid',)) and\
[1537]69               current_level not in levels and\
[2424]70               (sbrain.verdict in ('A','B','C','F','J','L','M') or sbrain.level == '100' or (sbrain.mode.startswith('de') and sbrain.level == '200'))
[1565]71
[1492]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
[2132]79    #row['title'] = "Level %s" % l
80    row['title'] = context.portal_vocabularies.levels_voc[l]
[1492]81    row['url'] = "%s/%s" % (context.absolute_url(),l)
82    items.append(row)
[1380]83
[723]84info['items'] = items
[1504]85
[1565]86try:
[1504]87    info['verdict'] = context.portal_vocabularies.verdicts.get(info['doc'].current_verdict).upper()
88except:
[1565]89    info['verdict'] = course.current_verdict
[1504]90
[723]91return info
[1504]92
Note: See TracBrowser for help on using the repository browser.