Index: /WAeUP_SRP/trunk/skins/waeup_aaua/getAccommodationStatus.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_aaua/getAccommodationStatus.py	(revision 5790)
+++ /WAeUP_SRP/trunk/skins/waeup_aaua/getAccommodationStatus.py	(revision 5790)
@@ -0,0 +1,138 @@
+## Script (Python) "getAccommodationStatus"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student_id=None
+##title=
+##
+# $Id$
+"""
+return Info about the current Student
+"""
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+import logging
+logger = logging.getLogger('Skins.getAccommodationStatus')
+import DateTime
+
+pprops = context.portal_properties
+booking_disabled = not pprops.enable_acco_booking
+
+request = context.REQUEST
+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
+info = {}
+if student_id is None:
+    requested_id = context.getStudentId()
+    if requested_id and not context.isStaff() and member_id != requested_id:
+        logger.info('%s tried to access %s' % (member_id,requested_id))
+        return None
+    elif context.isStaff():
+        student_id = requested_id
+    else:
+        student_id = member_id
+student_record = context.students_catalog.getRecordByKey(student_id)
+if student_record is None:
+    logger.info('%s not found in students_catalog' % student_id)
+    return None
+
+info['error'] = None
+info['matric_no']=student_record.matric_no
+info['jamb_reg_no']=student_record.jamb_reg_no
+info['name']=student_record.name
+info['email']=student_record.email
+info['level']=student_record.level
+info['verdict']=getattr(student_record,'verdict','')
+review_state = info['review_state'] = student_record.review_state
+info['session'] = session = context.getSessionId()
+students_object = context.portal_url.getPortalObject().campus.students
+student = getattr(students_object, student_id)
+info['student_id'] = student_id
+info['student'] = student
+
+# do not change these settings!
+
+booking_allowed = False
+info['booking_disabled'] = False
+
+# customize from here
+
+try:
+    level = int(student_record.level)
+except:
+    logger.info('%s has invalid level %s' % (student_id,student_record.level))
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info    
+    
+try:
+    arrived = int(student_record.session) == int(session[0])
+except:
+    arrived = False
+    logger.info('%s has invalid session %s' % (student_id,student_record.session))    
+
+if review_state in ('school_fee_paid','courses_registered', 'courses_validated',) and arrived:
+    info['booking_allowed'] = True
+    info['online_payment'] = True
+else:
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info
+
+d = {}
+if level >= 300:
+   bt = 'fi'
+if level == 100:
+    bt = 'fr'
+elif level < 100:
+    bt = 'pr'    
+elif level < 300:
+    bt = 're'
+
+d['sex'] = 'male'
+if student_record.sex:
+    d['sex'] = 'female'
+
+info['sex']=d['sex']
+d['bt'] = bt
+student_status = "%(sex)s_%(bt)s" % d
+info['student_status'] = student_status
+
+# customize end
+
+acco_id = student_id + '|' + session[0]
+info['acco_id'] = acco_id
+
+if booking_disabled:
+  info['booking_disabled'] = True
+  #logger.info('%s: %s eligible but booking disabled' % (student_id,student_status))  
+
+accommodation_record = context.accommodation_catalog.getRecordByKey(acco_id)
+if accommodation_record is None:
+    return info
+  
+info['booking_allowed'] = False
+info['acco_res_date'] = accommodation_record.acco_res_date
+info['acco_res_sc_pin'] = accommodation_record.acco_res_sc_pin
+info['acco_maint_fee'] = accommodation_record.acco_maint_fee
+info['acco_maint_code'] = accommodation_record.acco_maint_code
+info['student_status'] = accommodation_record.student_status
+info['bed'] = accommodation_record.bed
+info['session'] = accommodation_record.session
+info['maintenance_paid'] = accommodation_record.reservation_status == 'maintenance_fee_paid'
+
+return info
Index: /WAeUP_SRP/trunk/skins/waeup_fceoyo/getAccommodationStatus.py
===================================================================
--- /WAeUP_SRP/trunk/skins/waeup_fceoyo/getAccommodationStatus.py	(revision 5790)
+++ /WAeUP_SRP/trunk/skins/waeup_fceoyo/getAccommodationStatus.py	(revision 5790)
@@ -0,0 +1,139 @@
+## Script (Python) "getAccommodationStatus"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=student_id=None
+##title=
+##
+# $Id$
+"""
+return Info about the current Student
+"""
+try:
+    from Products.zdb import set_trace
+except:
+    def set_trace():
+        pass
+
+import logging
+logger = logging.getLogger('Skins.getAccommodationStatus')
+import DateTime
+
+pprops = context.portal_properties
+booking_disabled = not pprops.enable_acco_booking
+
+request = context.REQUEST
+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
+info = {}
+if student_id is None:
+    requested_id = context.getStudentId()
+    if requested_id and not context.isStaff() and member_id != requested_id:
+        logger.info('%s tried to access %s' % (member_id,requested_id))
+        return None
+    elif context.isStaff():
+        student_id = requested_id
+    else:
+        student_id = member_id
+student_record = context.students_catalog.getRecordByKey(student_id)
+if student_record is None:
+    logger.info('%s not found in students_catalog' % student_id)
+    return None
+
+info['error'] = None
+info['matric_no']=student_record.matric_no
+info['jamb_reg_no']=student_record.jamb_reg_no
+info['name']=student_record.name
+info['email']=student_record.email
+info['level']=student_record.level
+info['verdict']=getattr(student_record,'verdict','')
+review_state = info['review_state'] = student_record.review_state
+info['session'] = session = context.getSessionId()
+students_object = context.portal_url.getPortalObject().campus.students
+student = getattr(students_object, student_id)
+info['student_id'] = student_id
+info['student'] = student
+
+# do not change these settings!
+
+booking_allowed = False
+info['booking_disabled'] = False
+
+# customize from here
+
+try:
+    level = int(student_record.level)
+except:
+    logger.info('%s has invalid level %s' % (student_id,student_record.level))
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info    
+    
+try:
+    arrived = int(student_record.session) == int(session[0])
+except:
+    arrived = False
+    logger.info('%s has invalid session %s' % (student_id,student_record.session))    
+
+if review_state in ('school_fee_paid','courses_registered', 'courses_validated',) and arrived:
+    info['booking_allowed'] = True
+    info['online_payment'] = True
+else:
+    info['acco'] = None
+    info['booking_allowed'] = False
+    info['student_status'] = ''
+    return info
+
+d = {}
+if level >= 300:
+   bt = 'fi'
+if level == 100:
+    bt = 'fr'
+elif level < 100:
+    bt = 'pr'    
+elif level < 300:
+    bt = 're'
+
+d['sex'] = 'male'
+if student_record.sex:
+    d['sex'] = 'female'
+
+
+info['sex']=d['sex']
+d['bt'] = bt
+student_status = "%(sex)s_%(bt)s" % d
+info['student_status'] = student_status
+
+# customize end
+
+acco_id = student_id + '|' + session[0]
+info['acco_id'] = acco_id
+
+if booking_disabled:
+  info['booking_disabled'] = True
+  #logger.info('%s: %s eligible but booking disabled' % (student_id,student_status))  
+
+accommodation_record = context.accommodation_catalog.getRecordByKey(acco_id)
+if accommodation_record is None:
+    return info
+  
+info['booking_allowed'] = False
+info['acco_res_date'] = accommodation_record.acco_res_date
+info['acco_res_sc_pin'] = accommodation_record.acco_res_sc_pin
+info['acco_maint_fee'] = accommodation_record.acco_maint_fee
+info['acco_maint_code'] = accommodation_record.acco_maint_code
+info['student_status'] = accommodation_record.student_status
+info['bed'] = accommodation_record.bed
+info['session'] = accommodation_record.session
+info['maintenance_paid'] = accommodation_record.reservation_status == 'maintenance_fee_paid'
+
+return info
