## Script (Python) "pay_accommodation.py" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=REQUEST # $Id: pay_accommodation.py 5621 2010-12-28 08:53:23Z henrik $ """ process the the accommodation fee payment """ try: from Products.zdb import set_trace except: def set_trace(): pass import DateTime current = DateTime.DateTime() pr = context.portal_registration wftool = context.portal_workflow lt = context.portal_layouts info = context.getAccommodationStatus() import logging logger = logging.getLogger('Skins.pay_accommodation') if info is None: member_id = str(context.portal_membership.getAuthenticatedMember()) logger.info('%s tried to pay accommodation' % (member_id)) return context.REQUEST.RESPONSE.redirect("%s/srp_invalid_access" % context.portal_url()) #if info['booking_disabled']: # return context.REQUEST.RESPONSE.redirect("%s/booking_disabled" % info['student'].absolute_url()) #if not info['booking_allowed']: # return context.REQUEST.RESPONSE.redirect("%s/no_booking_allowed" % info['student'].absolute_url()) student = info['student'] student_id = info['student_id'] acco_id = info['acco_id'] session = info['session'] mode = 'edit' validate = REQUEST.has_key("cpsdocument_edit_button") button = 'Submit' res,psm,ds = lt.renderLayout(layout_id= 'student_accommodation_fe', schema_id= 'student_accommodation', context=context, mapping=validate and REQUEST, ob=info, layout_mode=mode, formaction = "pay_accommodation", button = button) if psm == 'invalid': member_id = str(context.portal_membership.getAuthenticatedMember()) logger.info('%s entered invalid data' % (member_id)) psm = "Please correct your input." return context.pay_accommodation_form(rendered = res, psm = psm, mode = mode, ds = ds, ) elif psm == '': return context.pay_accommodation_form(rendered = res, psm = None, mode = mode, ds = ds, ) elif psm == 'valid': pass data={} data['acco_maint_sc_pin'] = ds['acco_maint_sc_pin'] data['acco_maint_date'] = current data['catkey'] =student_id + '|' + session data['reservation_status'] = 'maintenance_fee_paid' context.accommodation_catalog.modifyRecord(**data) logger.info('%s paid accommodation in session %s' % (student_id,session)) return context.REQUEST.RESPONSE.redirect("%s/accommodations" % student.absolute_url())