## Script (Python) "deleteStudentByMatricNo"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=REQUEST,jamb_reg_no=None
##title=
##
# $Id: deleteStudentByMatricNo.py 1567 2007-03-17 08:34:51Z henrik $
"""
"""
import logging
logger = logging.getLogger('Skins.deleteStudentByRegNo')

request = REQUEST
wftool = context.portal_workflow
mtool = context.portal_membership
member = mtool.getAuthenticatedMember()
roles = member.getRolesInContext(context)
stdir = context.portal_directories.students
st_cat = context.students_catalog
ret_imp = context.returning_import
res_imp = context.results_import
students = context.portal_url.getPortalObject().campus.students
if str(member) not in ('admin','joachim') or jamb_reg_no is None:
    return


# remove from students_catalog

res = st_cat(jamb_reg_no=jamb_reg_no)
if len(res) != 1:
    msg = "Student with jamb_reg_no %s not found in students_catalog" % jamb_reg_no
    logger.info(msg)
    return msg
else:
    stbrain = res[0]
    student_id = stbrain.id
    st_cat.deleteRecord(student_id)
    msg = "Student with jamb_reg_no %s and student_id %s removed from students_catalog" % (jamb_reg_no,student_id)
    output = []
    logger.info(msg)
    output.append(msg)

# remove objects

if hasattr(students,student_id):
    students.manage_delObjects((student_id),)
    msg = "Student object for %s deleted" % student_id
else:
    msg = "No students object for %s" % student_id
output.append(msg)
logger.info(msg)

# remove from directory

if hasattr(stdir, student_id):
    stdir.deleteEntry(student_id)
    msg = "Student directory entry for %s deleted" % student_id
else:
    msg = "No Student directory entry for %s" % student_id
output.append(msg)
logger.info(msg)


return "\n".join(output)

