## Script (Python) "setNewEntryMode" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: setNewEntryMode.py 1713 2007-04-26 05:04:59Z henrik $ """ reindex students_catalog entry_mode index """ try: from Products.zdb import set_trace except: def set_trace(): pass request = context.REQUEST session = request.SESSION response = request.RESPONSE setheader = request.RESPONSE.setHeader students = context.portal_url.getPortalObject().campus.students import logging logger = logging.getLogger('Skins.setNewEntryMode') def rwrite(s): response.setHeader('Content-type','text/html; charset=ISO-8859-15') response.write("%s
\r\n" % s) brains = context.portal_catalog(portal_type = 'Student') count = 0 commit_count = 0 #set_trace() logger.info('setNewEntryMode start') for brain in brains: if not brain.entry_mode in ('UME','DE'): continue stud_obj = brain.getObject() try: app_doc = stud_obj.application.getContent() except: continue try: sc_doc = stud_obj.study_course.getContent() except: sc_doc = None em = getattr(app_doc,'entry_mode',None) if em in ('ume_ft','de_ft'): new_em = em else: new_em = "%s_ft" % em.lower() if em in ('ume_ft','UME'): el = "100" elif em in ('de_ft','DE'): el = "200" app_doc.edit(mapping={'entry_mode': new_em, 'entry_level': el}) sid = brain.getId if sc_doc: sc_doc.edit(mapping={'current_mode': new_em}) context.students_catalog.modifyRecord(id = sid, mode=new_em, entry_mode=new_em, entry_level=el) else: context.students_catalog.modifyRecord(id = sid, entry_mode=new_em, entry_level=el) count += 1 commit_count += 1 if commit_count > 1000: context.waeup_tool.doCommit() logger.info('committing %d total %d' % (commit_count,count)) commit_count = 0 s = "%d: %s %s -> %s" % (count,brain.getPath(),em,new_em) rwrite(s) rwrite('Done') logger.info('setNewEntryMode finish')