## Script (Python) "fix06Verdict" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: fixReturningSession.py 2456 2007-10-28 07:09:46Z henrik $ """ """ try: from Products.zdb import set_trace except: def set_trace(): pass import logging logger = logging.getLogger('Skins.fix06Verdict') from Products.AdvancedQuery import Eq, Between, Le,In aq_students = context.students_catalog.evalAdvancedQuery request = context.REQUEST session = request.SESSION response = request.RESPONSE setheader = request.RESPONSE.setHeader students = context.portal_url.getPortalObject().campus.students #from string import Template #def rwrite(s): # response.setHeader('Content-type','text/html; charset=ISO-8859-15') # response.write("%s
\n\r" % s) #logger.info('') query = ~ Eq('verdict','N/A') & ~ Eq('verdict','') & In('session',('2006/2007','06','6')) brains = aq_students(query) total = len(brains) logger.info('started editing %d students with session 06 and non-empty verdict' % total) count = 0 commit_after = 100 for brain in brains: count += 1 if count and not count % commit_after: context.waeup_tool.doCommit() logger.info("Committing %s transactions, total %s" % (commit_after,count)) try: study_course_doc = getattr(getattr(students,brain.id),'study_course').getContent() # final fix if brain.matric_no: verdict = study_course_doc.current_verdict else: verdict = '' study_course_doc.edit(mapping = { "current_verdict": '', "previous_verdict": verdict}) # Info: The logging message is wrong if not matric_no logger.info("Current verdict of %s (%s, %s, %s, %s) moved to previous verdict" % (brain.id, brain.matric_no, brain.name, brain.review_state, brain.verdict, )) except: #rwrite('>>>> not found %s study_course' % (brain.id)) pass logger.info('finished editing %d students' % total) return