## Script (Python) "getRetStudentStatistics" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # $Id: getStudentStatistics.py 1277 2007-01-11 21:11:37Z joachim $ """ return Student Statistics """ import logging logger = logging.getLogger('Skins.getSimpleStudentStatistics') logger.info('%s invoked statistics' % context.portal_membership.getAuthenticatedMember()) if not context.isStaff(): return catA = ( 'school_fee_paid', 'courses_registered', 'courses_validated', ) catB = ( 'courses_registered', 'courses_validated', ) catC = ( 'student_created', 'returning', 'admitted', 'clearance_pin_entered', 'objection_raised', 'clearance_requested', 'cleared_and_validated', ) current_session = context.getSessionId()[0] returning = ('110','120','200','210','220','300','310','320','400','410','420','500','510', '520','500','510','520','610','620','700','710','720','800','810','820',) new = ('100','600') faculties = context.portal_catalog(portal_type="Faculty") l = [] fac_res = {} dict = {} dict['id'] = 'All Faculties' dict['title'] = 'All Faculties' res_ft = context.students_catalog(level = returning) dict['total_ft'] = len(res_ft) res_pt = context.students_catalog(level = new) dict['total_pt'] = len(res_pt) res_Aft = context.students_catalog(review_state = catA, level = returning, session = current_session) dict['total_Aft'] = len(res_Aft) res_Apt = context.students_catalog(review_state = catA, level = new, session = current_session) dict['total_Apt'] = len(res_Apt) res_Bft = context.students_catalog(review_state = catB, level = returning, session = current_session) dict['total_Bft'] = len(res_Bft) res_Bpt = context.students_catalog(review_state = catB, level = new, session = current_session) dict['total_Bpt'] = len(res_Bpt) res_Cft = context.students_catalog(review_state = catC, level = returning, session = current_session) dict['total_Cft'] = len(res_Cft) res_Cpt = context.students_catalog(review_state = catC, level = new, session = current_session) dict['total_Cpt'] = len(res_Cpt) res_total = context.students_catalog() dict['total_in_catalog'] = len(res_total) dict['not_categorized'] = dict['total_in_catalog'] - dict['total_ft'] - dict['total_pt'] l.append(dict) for f in faculties: dict = {} dict['id'] = f.getId dict['title'] = f.Title res_ft = context.students_catalog(faculty = f.getId, level = returning) dict['total_ft'] = len(res_ft) res_pt = context.students_catalog(faculty = f.getId, level = new) dict['total_pt'] = len(res_pt) res_Aft = context.students_catalog(faculty = f.getId, review_state = catA, level = returning, session = current_session) dict['total_Aft'] = len(res_Aft) res_Apt = context.students_catalog(faculty = f.getId, review_state = catA, level = new, session = current_session) dict['total_Apt'] = len(res_Apt) res_Bft = context.students_catalog(faculty = f.getId, review_state = catB, level = returning, session = current_session) dict['total_Bft'] = len(res_Bft) res_Bpt = context.students_catalog(faculty = f.getId, review_state = catB, level = new, session = current_session) dict['total_Bpt'] = len(res_Bpt) res_Cft = context.students_catalog(faculty = f.getId, review_state = catC, level = returning, session = current_session) dict['total_Cft'] = len(res_Cft) res_Cpt = context.students_catalog(faculty = f.getId, review_state = catC, level = new, session = current_session) dict['total_Cpt'] = len(res_Cpt) l.append(dict) return l