## Script (Python) "ti_531_resolve"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: ti_531_resolve.py 3464 2008-04-22 05:29: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','joachim'):
    return


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

request = context.REQUEST
session = request.SESSION
response = request.RESPONSE
setheader = request.RESPONSE.setHeader
count = 0
found = 0
not_deleted = 0
commit_after = 200
logger.info('start')
students = context.students_catalog()
pumes = aq_portal(Eq('portal_type','StudentPume'))
total = len(pumes)
logger.info('found %d Pume objects' % total)
for pume in pumes:
    student_id = pume.getPath().split('/')[-2]
    student_object = getattr(students_folder,student_id)
    if count and not count % commit_after:
        context.waeup_tool.doCommit()
        logger.info("commiting %d transaction of %d" % (commit_after,count))
    try:
        getattr(student_object,manage_delObjects,'')
    except:
        student_object.manage_permission("Delete objects",roles=['Manager',])
    try:
        student_object.manage_delObjects('pume',)
        count += 1
        logger.info('deleted Pume object of %s %d/%d' % (student_id,count,total))
    except:
        student_object.manage_permission("Delete objects",roles=['Manager',])
        not_deleted += 1
        logger.info('could not delete Pume object of %s %d' % (student_id,not_deleted))
logger.info('finished deleting %d not deleted %d' % (count,not_deleted))


