## Script (Python) "ti_231_resolve"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: ti_231_resolve.py 1833 2007-05-30 09:50:39Z joachim $
"""
resolve ticket #231
"""
try:
    from Products.zdb import set_trace
except:
    def set_trace():
        pass
import logging
#>>>>>>>>>>>>>>>><
logger = logging.getLogger('Skins.ti_231_resolve')
# logger.info('already done on  by joachim')
# return
#<<<<<<<<<<<<<<<<<
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<br>\n\r" % s)

logger.info('ti_231 started')

query = In('entry_mode',('DE','UME'))
brains = aq_students(query)
total = len(brains)
logger.info('found %d students' % total)
count = 0
commit_after = 5
for brain in brains:
    try:
        application = getattr(getattr(students,brain.id),'application')
    except:
        logger.info('application of %s not found' % brain.id)
        continue
    count += 1
    application.getContent().edit(mapping={'entry_mode': '%s_ft' % brain.entry_mode.lower()})
    try:
        study_course = getattr(getattr(students,brain.id),'study_course')
    except:
        logger.info('study_course of %s not found' % brain.id)
        continue
    study_course.getContent().edit(mapping={'current_mode': '%s_ft' % brain.entry_mode.lower()})
    logger.info('%d of %d changed  modes of %s from %s to %s_ft' % (count,
                                                                    total,
                                                                    brain.id,
                                                                    brain.entry_mode,
                                                                    brain.entry_mode.lower()
                                                                   ))
    if not count % commit_after:
        context.waeup_tool.doCommit()
        logger.info("committed %d transactions" % commit_after)
logger.info('ti_231 finished for %d of %d' % (count,total))
