## Script (Python) "fixSessionKey"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: fixSessionKey.py 3132 2008-02-08 21:10:38Z henrik $
"""
"""
try:
    from Products.zdb import set_trace
except:
    def set_trace():
        pass

mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
if str(member) not in ('admin'):
    return

import logging
import DateTime
logger = logging.getLogger('Skins.fixSessionKey')
students = context.students_catalog()

counter = 0
for student in students:
    counter += 1
    modified = False
    sid = student.id
    try: 
        session = student.session
        entry_session = student.entry_session
        ls = len(session)
        les = len (entry_session)
    except:
        #logger.info('%s failed' % (sid))
        continue
    if ls == 1:
        session = '0%c' % session
        modified = True
    if les == 1:
        entry_session = '0%c' % entry_session
        modified = True
    if  entry_session == '98' and session.lstrip('0') == '8':
        modified = True
        entry_session = '08'       
    if modified:    
        context.students_catalog.modifyRecord(id = sid,
                                              session=session,
                                              entry_session=entry_session)        
        logger.info('%d: %s, %s, %s' % (counter, sid, session, entry_session))

return 'finished!'


