1 | ## Script (Python) "ti_188_resolve" |
---|
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: ti_188_resolve.py 1687 2007-04-18 11:28:47Z henrik $ |
---|
11 | """ |
---|
12 | resolve ticket #188 |
---|
13 | """ |
---|
14 | |
---|
15 | request = context.REQUEST |
---|
16 | session = request.SESSION |
---|
17 | response = request.RESPONSE |
---|
18 | setheader = request.RESPONSE.setHeader |
---|
19 | |
---|
20 | def getObject(outer,object): |
---|
21 | if outer and outer.hasObject(object): |
---|
22 | return getattr(outer,object) |
---|
23 | return None |
---|
24 | |
---|
25 | def rwrite(s): |
---|
26 | response.setHeader('Content-type','text/html; charset=ISO-8859-15') |
---|
27 | response.write("%s<br>\n\r" % s) |
---|
28 | |
---|
29 | wftool = context.portal_workflow |
---|
30 | mtool = context.portal_membership |
---|
31 | member = mtool.getAuthenticatedMember() |
---|
32 | roles = member.getRolesInContext(context) |
---|
33 | retcat = context.returning_import |
---|
34 | rcat = context.results_import |
---|
35 | scat = context.students_catalog |
---|
36 | from Products.AdvancedQuery import Eq, Between, Le,In |
---|
37 | aq_students = context.students_catalog.evalAdvancedQuery |
---|
38 | students = context.portal_url.getPortalObject().campus.students |
---|
39 | |
---|
40 | |
---|
41 | if str(member) not in ('admin','joachim'): |
---|
42 | return |
---|
43 | count = 0 |
---|
44 | ok_count = 0 |
---|
45 | reg_count = 0 |
---|
46 | nyl_count = 0 |
---|
47 | wrong_count = 0 |
---|
48 | cr_count = 0 |
---|
49 | res = scat() |
---|
50 | for sbrain in res: |
---|
51 | if str(sbrain.level) == '100': |
---|
52 | ec = "new" |
---|
53 | else: |
---|
54 | ec = "nor" |
---|
55 | erg = context.results_import(matric_no=sbrain.matric_no) |
---|
56 | if erg and erg[0].Level: |
---|
57 | level_res = erg[0].Level |
---|
58 | #everdict = erg[0].Verdict |
---|
59 | level_cc = context.getLevelFromResultsCosCode(erg) |
---|
60 | #if level_cc == 0: |
---|
61 | #lc = "-" |
---|
62 | lc = "%s00" % level_cc |
---|
63 | |
---|
64 | #verdict,elegible = context.getVerdict(everdict) |
---|
65 | #if elegible: |
---|
66 | # continue |
---|
67 | |
---|
68 | verdict = sbrain.verdict |
---|
69 | if verdict in ('A','B','',): |
---|
70 | continue |
---|
71 | |
---|
72 | dict = context.getFormattedStudentEntry(sbrain) |
---|
73 | dict['level_res'] = lc |
---|
74 | count += 1 |
---|
75 | dict['count'] = count |
---|
76 | code = 'xxx' |
---|
77 | comment = "" |
---|
78 | dict['review_state'] = '' |
---|
79 | sres = context.portal_catalog(id = sbrain.id) |
---|
80 | if sres: |
---|
81 | dict['review_state'] = sres[0].review_state |
---|
82 | |
---|
83 | #if sbrain.level == '': |
---|
84 | # code = 'nyl' |
---|
85 | # nyl_count += 1 |
---|
86 | |
---|
87 | if sbrain.level != lc: |
---|
88 | code = 'nok' |
---|
89 | wrong_count += 1 |
---|
90 | student = getObject(students,sbrain.id) |
---|
91 | study_course = getObject(student,'study_course') |
---|
92 | level = getObject(study_course,sbrain.level) |
---|
93 | if level is not None: |
---|
94 | cr_count += 1 |
---|
95 | if dict['review_state'] in ('courses_registered', 'courses_validated'): |
---|
96 | code = 'nok_cr' |
---|
97 | reg_count += 1 |
---|
98 | else: |
---|
99 | comment = "level %(level)s deleted" % dict |
---|
100 | comment = comment + ", level in students_catalog modified to %s" % lc |
---|
101 | ##study_course.manage_delObjects((sbrain.level,)) |
---|
102 | ##context.students_catalog.modifyRecord(id = sbrain.id,level=lc,) |
---|
103 | else: |
---|
104 | ok_count += 1 |
---|
105 | code = 'ok' |
---|
106 | dict['nyl_count'] = nyl_count |
---|
107 | dict['ok_count'] = ok_count |
---|
108 | dict['cr_count'] = cr_count |
---|
109 | dict['reg_count'] = reg_count |
---|
110 | dict['wrong_count'] = wrong_count |
---|
111 | dict['code'] = code |
---|
112 | dict['comment'] = comment |
---|
113 | rwrite('"%(count)d:%(ok_count)d:%(nyl_count)d:%(wrong_count)d:%(cr_count)d:%(reg_count)d","%(code)s","%(id)s","%(matric_no)s","%(name)s","%(level)s","%(level_res)s","%(review_state)s","%(comment)s"' % dict) |
---|
114 | |
---|
115 | rwrite("total: %(count)d<br> correct: %(ok_count)d<br> wrong: %(wrong_count)d<br> level created: %(cr_count)d<br> courses registered: %(reg_count)d" % dict ) |
---|
116 | |
---|
117 | |
---|