scripts/stats.py
changeset 2642 1bb33f56a3f4
parent 2592 040359ccd20b
child 2769 279d26439495
equal deleted inserted replaced
2641:7ad3af6d30bd 2642:1bb33f56a3f4
   423   student_projects = getStudentProjects()
   423   student_projects = getStudentProjects()
   424   student_projects_amount = len(student_projects)
   424   student_projects_amount = len(student_projects)
   425   print "Fetched %d Student Projects." % student_projects_amount
   425   print "Fetched %d Student Projects." % student_projects_amount
   426   print "Fetching Student entities from Student Projects."
   426   print "Fetching Student entities from Student Projects."
   427   accepted_students = {}
   427   accepted_students = {}
   428   student_organization = {}
   428   student_extra_data = {}
   429   counter = 0
   429   counter = 0
       
   430   
   430   for sp_key in student_projects.keys():
   431   for sp_key in student_projects.keys():
   431     key = student_projects[sp_key].student.key().name()
   432     key = student_projects[sp_key].student.key().name()
   432     accepted_students[key] = student_projects[sp_key].student
   433     accepted_students[key] = student_projects[sp_key].student
   433     org_name = student_projects[sp_key].scope.name
   434     org_name = student_projects[sp_key].scope.name
   434     student_organization[key] = org_name
   435     student_extra_data[key] = {}
       
   436     student_extra_data[key]['organization'] = org_name
       
   437     student_extra_data[key]['project_status'] = student_projects[sp_key].status
   435     counter += 1
   438     counter += 1
   436     print str(counter) + '/' + str(student_projects_amount) + ' ' + key + ' (' + org_name + ')'
   439     print str(counter) + '/' + str(student_projects_amount) + ' ' + key + ' (' + org_name + ')'
   437   print "All Student entities fetched."
   440   print "All Student entities fetched."
   438   
   441   
   439   students_key_order = ['link_id', 'given_name', 'surname', 
   442   students_key_order = ['link_id', 'given_name', 'surname', 
   444       'major', 'degree']
   447       'major', 'degree']
   445 
   448 
   446   print "Preparing Students data for export."
   449   print "Preparing Students data for export."
   447   students_data = [accepted_students[i].toDict(students_key_order) for i in accepted_students.keys()]
   450   students_data = [accepted_students[i].toDict(students_key_order) for i in accepted_students.keys()]
   448   
   451   
   449   print "Adding organization name to Students data."
   452   print "Adding organization name and project status to Students data."
   450   for student in students_data:
   453   for student in students_data:
   451     student['organization'] = student_organization[program_key_name + '/' + student['link_id']]
   454     extra_data = student_extra_data[program_key_name + '/' + student['link_id']]
       
   455     student['organization'] = extra_data['organization']
       
   456     student['project_status'] = extra_data['project_status']
   452   
   457   
   453   students_key_order.append('organization')
   458   students_key_order.append('organization')
       
   459   students_key_order.append('project_status')
   454   
   460   
   455   saveDataToCSV(csv_filename, students_data, students_key_order)
   461   saveDataToCSV(csv_filename, students_data, students_key_order)
   456   print "Accepted Students exported to %s file." % csv_filename
   462   print "Accepted Students exported to %s file." % csv_filename
   457   
   463   
   458   
   464