## Script (Python) "release_bed" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: release_bed.py 3406 2008-04-02 07:16:08Z henrik $ """ release an allocated bed """ import logging logger = logging.getLogger('Skins.release_bed') request = context.REQUEST redirect = request.RESPONSE.redirect mtool = context.portal_membership wf = context.portal_workflow member = mtool.getAuthenticatedMember() member_id = str(member) path_info = request.get('PATH_INFO').split('/') if mtool.isAnonymousUser(): return None students = context.portal_url.getPortalObject().campus.students acco_cat = context.portal_accommodation #stud_cat = context.students_catalog student_id = context.getStudentId() try: from Products.zdb import set_trace except: def set_trace(): return #set_trace() if student_id is not None: logger.info('%s requests bed_release for %s' % (member_id,student_id)) res = acco_cat(student=student_id) if len(res) == 0: logger.info('no bed of %s found' % (student_id)) return redirect("%s/%s" % (students.absolute_url(),student_id)) allocated_bed = res[0] acco_cat.modifyRecord(bed=allocated_bed.bed,student=acco_cat.not_occupied) acco_doc = context.getContent() acco_doc.edit(mapping={'bed':"-- cancelled by section officer --",'acco_maint_fee':""}) logger.info('%s released bed of %s' % (member_id,student_id)) return redirect("%s" % (context.absolute_url()))