## 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)