## Script (Python) "getMemberInfo"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: getApplicationInfo.py 1161 2006-12-31 07:50:50Z henrik $
"""
return Info about the current Student
"""
import logging
logger = logging.getLogger('Student.Member.Info')

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 = {}
# requested_id = context.getStudentId()
# if requested_id and not context.isStaff() and member_id != requested_id:
#     logger.info('%s tried to access personal object of %s' % (member_id,requested_id))
#     student_id = requested_id
#     return None
# elif context.isStaff():
#     student_id = requested_id
# else:
#     student_id = member_id

info = context.waeup_tool.getAccessInfo(context)
student_id = info['student_id']
if student_id is None:
    return None

students_object = context.portal_url.getPortalObject().campus.students
student = getattr(students_object, student_id)

complete_msg="""
Your SRP Member Details
-----------------------

Fullname: %(student_name)s
Student Id: %(id)s
Matriculation Number: %(matric_no)s
Registration Number: %(jamb_reg_no)s
Registration Status: %(review_state)s
Email Address in Application Data: %(app_email)s
Email Address in Personal Data: %(per_email)s
Date of Birth: %(birthday)s
Password: '%(password)s'

"""
short_msg="""
Your SRP Member Details
-----------------------

Fullname: %(student_name)s
Student Id: %(id)s
Password: %(password)s

"""
student_record = context.students_catalog.getRecordByKey(student_id)
if hasattr(student,"application") and hasattr(student,"personal") and hasattr(student,"clearance"):
    #info['student'] = student
    info['id'] = student_id
    info['review_state'] = student_record.review_state
    #info['per'] = getattr(student,'personal',None)
    #per_doc = info['per_doc'] = student.personal.getContent()
    #info['app_doc'] = student.application.getContent()
    info['jamb_reg_no'] = student_record.jamb_reg_no
    #info['clear_doc'] = student.clearance.getContent()
    info['matric_no'] = student_record.matric_no
    info['password'] = context.waeup_tool.getCredential(student_id)
    info['student_name'] = student_record.name
    info['birthday'] = student.clearance.getContent().birthday
    app_email = info['app_email'] = student.application.getContent().app_email
    per_email = info['per_email'] = student_record.email
    if per_email:
        info['email'] = per_email
    elif app_email:
        info['email'] = app_email
    else:
        info['email'] = ''

    info['message'] = complete_msg % info
    info['with_email'] = bool(info['email'])
else:
    info['student_name'] = 'N/A'
    info['id'] = student_id
    info['review_state'] = wf.getInfoFor(student,'review_state',None)
    info['password'] = context.waeup_tool.getCredential(student_id)
    info['email'] = 'N/A'
    info['message'] = short_msg % info
    info['with_email'] = False
return info
