source: WAeUP_SRP/trunk/skins/waeup_utilities/fixLevelFromResults.py @ 1403

Last change on this file since 1403 was 1401, checked in by joachim, 18 years ago

fix the levels
add verdict to students_catalog
add current_verdict to student_study_course
add the same fixes to makeStudentData (not yet tested)

  • Property svn:keywords set to Id
File size: 3.8 KB
Line 
1## Script (Python) "search_pins"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=
8##title=
9##
10# $Id: fixLevelFromResults.py 1401 2007-02-08 18:08:38Z joachim $
11"""
12list Students for ClearanceOfficers
13"""
14
15request = context.REQUEST
16session = request.SESSION
17response = request.RESPONSE
18setheader = request.RESPONSE.setHeader
19
20#def rwrite(s):
21#    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
22#    response.write(s)
23   
24wftool = context.portal_workflow
25mtool = context.portal_membership
26member = mtool.getAuthenticatedMember()
27roles = member.getRolesInContext(context)
28retcat = context.returning_import
29rcat = context.results_import
30scat = context.students_catalog
31from Products.AdvancedQuery import Eq, Between, Le,In
32aq_students = context.students_catalog.evalAdvancedQuery
33students = context.portal_url.getPortalObject().campus.students
34
35
36if str(member) not in ('admin','joachim'):
37    return
38count = 0
39line_count = 0
40lines = []
41#from Products.zdb import set_trace;set_trace()
42res = scat()
43for sbrain in res:
44    old_level = str(sbrain.level)
45    if str(sbrain.level) == '100':
46        ec = "new"
47    else:
48        ec = "nor"
49    erg = context.results_import(matric_no=sbrain.matric_no)
50    lc = 'u'
51    if erg and erg[0].Level:
52        lc = "e" # code for level status u = unset
53        level = erg[0].Level
54        everdict = erg[0].Verdict
55        lnr = context.getLevelFromResultsCosCode(erg)
56        if lnr == 0:
57            lc = "-"
58        if "%d00" % lnr != level:
59            lc = "!"
60        verdict,elegible = context.getVerdict(everdict)
61        if elegible:
62            lc = "+"
63            level = "%d00" % (lnr + 1)
64        context.students_catalog.modifyRecord(id = sbrain.id,
65                                              level="",
66                                              verdict = "")
67        while True:
68            student = getattr(students,sbrain.id,None)
69            ec = "nos"
70            if student is None:
71                break
72            ec = "nyr"
73            study_course = getattr(student,"study_course", None)
74            if study_course is None:
75                break
76            study_course.getContent().edit(mapping = {'current_level':level,
77                                                      'current_verdict':verdict})
78            context.students_catalog.modifyRecord(id = sbrain.id,
79                                                  level=level,
80                                                  verdict=verdict)
81            ec = "reg"
82            break
83
84#        rwrite(ec +"--"+ sbrain.id +"--"+ sbrain.matric_no +"--"+ old_level +"--"+ level +"<br />")
85
86        lines.append('"%s %s","%s","%s","%s","%s","%s","%s"' % (lc,ec,
87                                                           sbrain.id,
88                                                           sbrain.matric_no,
89                                                           old_level,
90                                                           level,
91                                                           everdict,
92                                                           verdict))
93       
94
95    else:
96#        rwrite(ec +"--"+ sbrain.id +"--"+ sbrain.matric_no + "<br />")
97        lines.append('"%s","%s","%s","",""' % (ec,sbrain.id,sbrain.matric_no))
98       
99#    count += 1
100#    if count > 60:
101#        line_count += 1
102#        rwrite("<br />\n%3d " % line_count)
103#        count = 0
104
105#rwrite("<br />\n Done" )
106
107setheader('Content-type','text/semicolon-seperated-values')
108setheader('Content-Disposition:', 'attachment; filename="fixLevelExport.csv"')
109setheader('Expires',  'Mon, 26 Jul 1997 05:00:00GMT') # Date in the past
110setheader('Cache-Control', 'no-store, no-cache,must-revalidate') # HTTP/1.1
111setheader('Cache-Control', 'post-check=0,pre-check=0')
112setheader('Pragma', 'no-cache') # HTTP/1.0
113return '\n'.join(lines)
114
Note: See TracBrowser for help on using the repository browser.