##parameters=REQUEST # $Id: fixReservedBeds.py 1447 2007-02-20 13:41:26Z joachim $ """ process the the accommodation reservation """ import DateTime current = DateTime.DateTime() request = context.REQUEST pr = context.portal_registration wftool = context.portal_workflow lt = context.portal_layouts mtool = context.portal_membership member = mtool.getAuthenticatedMember() acco_cat = context.portal_accommodation import logging logger = logging.getLogger('Skins.fixReservedBed') students = context.portal_url.getPortalObject().campus.students hostels = context.portal_url.getPortalObject().campus.accommodation.objectItems() acco_id = "accommodation_%s" % context.getSessionId() logger.info('%s starts fixReservedBeds' % (member)) #from Products.zdb import set_trace;set_trace() for h_id,h in hostels: h_doc = h.getContent() reserved = context.reservedRoomsVoc(doc=h_doc) for hr,hrv in reserved: for k,v in context.getAccoHallBeds(doc=h_doc): bid = "%s_%s_%s" % (h_id,hr,k) res = acco_cat(bed = bid) if not res: continue bed = res[0] if not bed.student: continue student_obj = getattr(students,bed.student) if acco_id in student_obj.objectIds(): acco_doc = getattr(student_obj, acco_id).getContent() if acco_doc.bed != bid: acco_cat.modifyRecord(bed=bid,student = '') logger.info('"%s","removed allocation of %s for","%s"' % (member,bid,bed.student)) logger.info('%s finishes fixReservedBeds' % (member)) return request.RESPONSE.redirect("%s" % context.absolute_url())