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

Last change on this file since 2368 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
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 2325 2007-10-07 06:35:00Z 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\
[2325]70               (sbrain.verdict in ('A','B','C','F','J','L','M') or sbrain.level == '100')
[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.