## Script (Python) "getAccommodationInfo" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=student_id=None ##title= ## # $Id: getAccommodationInfo.py 1726 2007-05-02 06:21:50Z henrik $ """ return Info about the current Student """ import logging logger = logging.getLogger('Skins.getAccommodationInfo') import DateTime 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 res = context.students_catalog(id=student_id) if len(res) != 1: logger.info('%s not found in students_catalog' % student_id) return None s_brain = res[0] info['error'] = None info['matric_no']=s_brain.matric_no info['jamb_reg_no']=s_brain.jamb_reg_no info['name']=s_brain.name info['email']=s_brain.email info['level']=s_brain.level info['end_level'] = s_brain.end_level info['verdict']=getattr(s_brain,'verdict','') review_state = info['review_state'] = s_brain.review_state info['session'] = current_session = context.getSessionId()[0] students_object = context.portal_url.getPortalObject().campus.students student = getattr(students_object, student_id) info['student_id'] = student_id info['student'] = student booking_allowed = False if review_state in ('school_fee_paid','courses_registered', 'courses_validated',) and s_brain.session == current_session: booking_allowed = True booking_allowed = True # booking temporarily disabled # the algorithm must be adapted to new course_results catalog # and/or FCEOkene modalities info['booking_allowed'] = booking_allowed info['online_payment'] = True # for Okene if not booking_allowed: info['acco'] = None return info acco_id = 'accommodation_' + str(current_session) acco = getattr(student,acco_id,None) info['acco'] = acco info['acco_id'] = acco_id bt = 're' info['maintenance_paid'] = False if acco is not None: info['acco_doc'] = acco.getContent() info['acco_review_state'] = wf.getInfoFor(acco,'review_state',None) info['maintenance_paid'] = info['acco_review_state'] == "maintenance_fee_paid" d = {} if review_state == "cleared_and_validated": bt = 'fr' elif int(s_brain.level) < 300: bt = 're' elif int(s_brain.level) < 100: bt = 'pr' else: if s_brain.end_level and s_brain.end_level: certlevel = int(certificate.end_level) else: info["error"] = '"no level information provided","%s"' % c_brain.getId return info if s_brain.end_level >= s_brain.end_level: bt = "fi" d['sex'] = 'male' if s_brain.sex: d['sex'] = 'female' info['sex']=d['sex'] d['bt'] = bt #from Products.zdb import set_trace #set_trace() student_status = "%(sex)s_%(bt)s" % d info['student_status'] = student_status return info