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 |