- Timestamp:
- 21 Jun 2007, 14:36:15 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/trunk/Students.py
r1940 r1941 942 942 'courses_validated')) 943 943 students = aq_students(query) 944 logger.info('%s starts exportStudents, %s student records to export' % (member,len(students))) 945 chunk = 100 944 nr2export = len(students) 945 logger.info('%s starts exportStudents, %s student records to export' % (member,nr2export)) 946 chunk = 2000 946 947 total = 0 948 start = DateTime.DateTime().timeTime() 949 start_chunk = DateTime.DateTime().timeTime() 950 ## alternative method slightly slower 951 # student_recs = {} 952 # for s in students: 953 # student_recs[s.id] = s 954 # catalog_recs = {} 955 # brains = self.portal_catalog(portal_type = 'Student') 956 # for cat_rec in brains: 957 # sid = cat_rec.getId 958 # catalog_recs[sid] = cat_rec 959 # #import pdb;pdb.set_trace() 960 # start = DateTime.DateTime().timeTime() 961 # start_chunk = DateTime.DateTime().timeTime() 962 # for student in students: 963 # if student.id not in student_recs.keys(): 964 # continue 965 # not_all = False 966 # d = self.getFormattedStudentEntry(student_recs[student.id]) 967 # student_obj = catalog_recs[student.id].getObject() 947 968 for student in students: 948 969 not_all = False 949 970 d = self.getFormattedStudentEntry(student) 971 student_obj = getattr(students_folder,student.id) 950 972 for k in toexport.keys()[1:]: 951 973 try: 952 object = getattr( getattr(students_folder,student.id),k)974 object = getattr(student_obj,k) 953 975 object_doc = object.getContent() 954 976 except: … … 967 989 open(export_file,"a").write('\n'.join(lines) +'\n') 968 990 anz = len(lines) 969 logger.info("wrote %(anz)d to %(export_file)s" % vars()) 991 logger.info("wrote %(anz)d total written %(total)d" % vars()) 992 end_chunk = DateTime.DateTime().timeTime() 993 duration = end_chunk-start_chunk 994 per_record = duration/anz 995 till_now = end_chunk - start 996 avarage_per_record = till_now/total 997 estimated_end = DateTime.DateTime(start + avarage_per_record * nr2export) 998 estimated_end = estimated_end.strftime("%H:%M:%S") 999 logger.info('%(duration)4.1f, %(per_record)4.3f,end %(estimated_end)s' % vars()) 1000 start_chunk = DateTime.DateTime().timeTime() 970 1001 lines = [] 1002 end = DateTime.DateTime().timeTime() 1003 logger.info('total time %6.2f m' % ((end-start)/60)) 971 1004 filename, extension = os.path.splitext(export_file) 972 os.system('zip %s %s' % (filename,export_file)) 973 os.system('rm %s' % (export_file)) 974 msg = "finished wrote %(total)d records to %(filename)s.zip" % vars() 1005 from subprocess import call 1006 msg = "wrote %(total)d records to %(export_file)s" % vars() 1007 try: 1008 retcode = call('gzip %s' % (export_file),shell=True) 1009 if retcode == 0: 1010 msg = "wrote %(total)d records to %(export_file)s.gz" % vars() 1011 except OSError, e: 1012 retcode = -99 1013 logger.info("zip failed with %s" % e) 975 1014 logger.info(msg) 976 1015 args = {'portal_status_message': msg} 977 #url = self.REQUEST.get('URL1') + '?' + urlencode(args) 978 url = self.REQUEST.get('URL 1')1016 #url = self.REQUEST.get('URL1') + '?' + urlencode(args) 1017 url = self.REQUEST.get('URL2') 979 1018 return self.REQUEST.RESPONSE.redirect(url) 980 1019 ###)
Note: See TracChangeset for help on using the changeset viewer.