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

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

close_for_edit deprecated

Objects should always be opened unless the verdict has been imported.

We need a script which opens all levels before we import the verdicts.

  • Property svn:keywords set to Id
File size: 3.3 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 2752 2007-11-24 06:06:14Z 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 = []
[2483]62
63if hasattr(course,'current_verdict'):
64    try:
65        info['verdict'] = context.portal_vocabularies.verdicts.get(course.current_verdict).upper()
66    except:
67        info['verdict'] = course.current_verdict
68else:
69    info['verdict'] = ''
70
71if hasattr(course,'previous_verdict'):
72    try:
73        previous_verdict = course.previous_verdict
74        info['previous_verdict'] = context.portal_vocabularies.verdicts.get(course.previous_verdict).upper()
75    except:
76        info['previous_verdict'] = course.previous_verdict
77else:
78    info['previous_verdict'] = ''
79    previous_verdict = ''
80
81
[1492]82current_level = sbrain.level
83levels = context.objectIds()
84review_state = wftool.getInfoFor(context,'review_state',None)
[2664]85student_review_state = sbrain.review_state
[2752]86#if review_state != 'content_addable' and student_review_state == 'school_fee_paid': #and context.isStudent():
87#    wftool.doActionFor(context,'close_for_edit')
[2674]88
[2664]89has_paid = student_review_state == 'school_fee_paid'
90
91may_register = has_paid and\
92               current_level not in levels and\
93               (previous_verdict in ('A','B','C','F','J','L','M') or\
[2674]94               current_level == '100' or\
95               (sbrain.mode.startswith('de') and current_level == '200'))
[2678]96
[2674]97missing_data = has_paid and\
98               current_level not in levels and\
99               not (previous_verdict or sbrain.level) and\
100               not (current_level == '100' or\
[2678]101               (sbrain.mode.startswith('de') and current_level == '200'))
[2664]102
[2674]103info['missing_data'] = missing_data
[1492]104levels.sort()
105info['create_level'] = None
[2640]106student_levels_voc = context.portal_vocabularies.student_levels
[2678]107if may_register:
[1492]108    info['create_level'] = current_level
[2640]109    info['create_level_str'] = student_levels_voc.get(current_level)
[1492]110for l in levels:
111    row = {}
112    row['id'] = l
[2640]113    #row['title'] = "Level %s" % l
114    row['title'] = student_levels_voc.get(l)
[1492]115    row['url'] = "%s/%s" % (context.absolute_url(),l)
116    items.append(row)
[1380]117
[723]118info['items'] = items
[1504]119
[2483]120
121
[723]122return info
[1504]123
Note: See TracBrowser for help on using the repository browser.