## Script (Python) "ti_493_resolve" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: ti_493_resolve.py 3258 2008-02-29 09:44:47Z 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_493_resolve') from Products.AdvancedQuery import Eq, Between, Le,In aq_students = context.students_catalog.evalAdvancedQuery aq_portal = context.portal_catalog_real.evalAdvancedQuery payments_catalog = context.payments_catalog aq_payments = payments_catalog.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
\n\r" % s) logger.info('start') portal_payments = aq_portal(Eq('portal_type','Payment')) sc_payments = aq_payments(Eq('type','sc')) logger.info('found %d payments, %d SC payments' % (len(portal_payments),len(sc_payments))) student_ids = [r.student_id for r in sc_payments] count = 0 found = 0 set_trace() for payment in portal_payments: count +=1 student_id = payment.relative_path.split('/')[2] if student_id in student_ids: doc = payment.getObject().getContent() session_id = doc.type_description[doc.type_description.find('/')-2:doc.type_description.find('/')] if session_id == doc.session_id: continue found += 1 logger.info("%d of %d: editing payment of %s, %s, %s, session_id from %s to %s" % (found,count, student_id, doc.date, doc.type_description, doc.session_id, session_id)) #doc.edit({'session_id': session_id}) logger.info('finished editing %d' % found)