## Script (Python) "ti_474_resolve"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: ti_474_resolve.py 3159 2008-02-13 20:13:28Z 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','joachim'):
    return


import logging
import DateTime
logger = logging.getLogger('Skins.ti_474_resolve')
from Products.AdvancedQuery import Eq, Between, Le,In
aq_students = context.students_catalog.evalAdvancedQuery
aq_portal = context.portal_catalog_real.evalAdvancedQuery
course_results = context.course_results
aq_course_results = course_results.evalAdvancedQuery
students_folder = context.portal_url.getPortalObject().campus.students

request = context.REQUEST
session = request.SESSION
response = request.RESPONSE
setheader = request.RESPONSE.setHeader
def rwrite(s):
    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
    response.write("%s<br>\n\r" % s)
course_results_to_change = []
logger.info('start')
#set_trace()
for result in course_results():
    student_id,level_id,code = result.key.split('|')
    if result.student_id != student_id:
        d = {}
        d['key'] = result.key
        d['student_id'] = student_id
        d['level_id'] = level_id
        course = context.courses_catalog.getRecordByKey(result.code)
        d['credits'] = course.credits
        d['semester'] = course.semester
        d['session_id'] = '06'
        course_results_to_change += d,
logger.info('found %d correctable results' % len(course_results_to_change))
#set_trace()
for result in course_results_to_change:
    try:
        course_results.modifyRecord(**result)
        logger.info('correcting %(key)s' % result)
    except KeyError:
        #set_trace()
        logger.info('%(key)s not found there' % result)

logger.info('finished')
