## Script (Python) "Career_shiftDefault" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## object_list = [] default_career = None new_start_date = None # Create a list of all career line except the default one for object in context.objectValues(): if object.getPortalType() == 'Career': if object.getId() != 'default_career': object_list += [object] else: default_career = object new_start_date = default_career.getStopDate() # No default career if default_career == None: return context.REQUEST.RESPONSE.redirect(context.absolute_url() + '/Person_viewCareer' + '?portal_status_message=Current+career+need+to+be+defined') # Inverse sort of the list by id object_list.sort(lambda x, y: -cmp(int(x.getId()), int(y.getId()))) # Shift all career lines id values new_id = str(context.generateNewId()) for career_line in object_list: current_id = career_line.getId() context.manage_renameObject(current_id, new_id) new_id = current_id # Create a new default_career context.manage_renameObject('default_career', new_id) new_default = context.manage_copyObjects(ids=(new_id,)) new_object = context.manage_pasteObjects(new_default) context.manage_renameObject(new_object[0]['new_id'], 'default_career') context.setDefaultCareerStopDate(None) context.setDefaultCareerStartDate(new_start_date) return context.REQUEST.RESPONSE.redirect(context.absolute_url() + '/Person_viewCareer' + '?portal_status_message=New+career+step+added')