##parameters=REQUEST=None # $Id: create_jamb.py 173 2005-11-15 16:28:29Z joachim $ """ Create an the Jamb-Record for a Student """ type_name = 'Jamb' ti = context.portal_types[type_name] pr = context.portal_registration pm = context.portal_membership REQUEST.set('type_name',type_name) validate = REQUEST.has_key("cpsdocument_edit_button") lt = context.portal_layouts res,psm,ds = lt.renderLayout(layout_id= 'jambcreate', schema_id= 'jamb', context=context, mapping=validate and REQUEST, ob={}, layout_mode='create', ) if psm == 'invalid': return context.create_jamb_form(rendered = res, psm = 'Please correct your errors', ds = ds, ) elif psm == '': return context.create_jamb_form(rendered = res, psm = psm, ds = ds, ) elif psm == 'valid': s_id = "s%s" % ds.get('reg_nr') skw = {'title': "%(firstname)s %(lastname)s" % ds} context.invokeFactory('Student',s_id) student = getattr(context,s_id) student.getContent().edit(mapping=skw) context.notifyCPSDocumentCreation(ob=student) jamb_id = 'JAMB' student.invokeFactory('Jamb',jamb_id) jamb = getattr(student,jamb_id) ds.set('title', "%(reg_nr)s (%(lastname)s)" % ds) jamb.getContent().edit(mapping=ds) context.notifyCPSDocumentCreation(ob=jamb) psm = 'Student created' noCPSMember = False try: #pr.addMember(s_id, 'UnSeT',roles=('Member','CPSMember','Student','Contributor')) pr.addMember(s_id, '123456',roles=('Member','CPSMember','Student','Contributor')) except: noCPSMember = True if noCPSMember: #pr.addMember(s_id, 'UnSeT',roles=('Member','Student','Contributor')) pr.addMember(s_id, '123456',roles=('Member','Student','Contributor')) student.manage_setLocalRoles(s_id, ['Owner']) jamb.manage_setLocalRoles(s_id, ['Owner']) ## student.getContent().setOwnership(s_id) ## jamb.getContent().setOwnership(s_id) ## groups = context.portal_directories.groups ## gm = list(groups.getEntry('Students')['members']) ## gm.extend((s_id,)) ## groups.editEntry({'group': 'Students', ## 'members': gm}) return context.students_folder_view_manager(psm=psm)