Cleaned up export
This commit is contained in:
		
							parent
							
								
									b1bd5c6e04
								
							
						
					
					
						commit
						22eb695e97
					
				| 
						 | 
					@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.PathVariable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.servlet.http.HttpServletResponse;
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.io.OutputStreamWriter;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Optional;
 | 
					import java.util.Optional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,24 +35,57 @@ public class ExportStudentTeams {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Course course = optionalCourse.get();
 | 
					        Course course = optionalCourse.get();
 | 
				
			||||||
 | 
					        response.setContentType("text/plain");
 | 
				
			||||||
 | 
					        response.setCharacterEncoding("UTF-8");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        response.setContentType("text/*");
 | 
					        response.getOutputStream().write(getStudentTeamsSummary(course));
 | 
				
			||||||
 | 
					 | 
				
			||||||
        OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream());
 | 
					 | 
				
			||||||
        writer.write("Student Teams Export for course: " + course.getName() + "\n");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (TeachingAssistantTeam teachingAssistantTeam : course.getTeachingAssistantTeams()) {
 | 
					 | 
				
			||||||
            writer.write("Teaching Assistant Team " + teachingAssistantTeam.getId() + ", Github team: " + teachingAssistantTeam.getGithubTeamName() + "\n");
 | 
					 | 
				
			||||||
            List<StudentTeam> assignedTeams = teachingAssistantTeam.getAssignedStudentTeams();
 | 
					 | 
				
			||||||
            for (StudentTeam studentTeam : assignedTeams) {
 | 
					 | 
				
			||||||
                writer.write("\tStudent Team " + studentTeam.getId() + ": ");
 | 
					 | 
				
			||||||
                for (Student student : studentTeam.getStudents()) {
 | 
					 | 
				
			||||||
                    writer.write(student.getFullName() + " (S" + student.getStudentNumber() + "), ");
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                writer.write("\n");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        response.flushBuffer();
 | 
					        response.flushBuffer();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @GetMapping("/courses/{code}/student_teams/export_contact_info")
 | 
				
			||||||
 | 
					    public void exportContactInfo(@PathVariable String code, HttpServletResponse response) throws IOException {
 | 
				
			||||||
 | 
					        Optional<Course> optionalCourse = this.courseRepository.findByCode(code);
 | 
				
			||||||
 | 
					        if (!optionalCourse.isPresent()) {
 | 
				
			||||||
 | 
					            response.sendError(404, "Course with code " + code + " not found");
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Course course = optionalCourse.get();
 | 
				
			||||||
 | 
					        response.setContentType("text/plain");
 | 
				
			||||||
 | 
					        response.setCharacterEncoding("UTF-8");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        response.getOutputStream().write(getContactInfo(course));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        response.flushBuffer();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private byte[] getStudentTeamsSummary(Course course) {
 | 
				
			||||||
 | 
					        StringBuilder sb = new StringBuilder("Student Teams Export for Course: ");
 | 
				
			||||||
 | 
					        sb.append(course.getName()).append('\n');
 | 
				
			||||||
 | 
					        for (TeachingAssistantTeam teachingAssistantTeam : course.getTeachingAssistantTeams()) {
 | 
				
			||||||
 | 
					            sb.append("Teaching Assistant Team ").append(teachingAssistantTeam.getId()).append(", Github Team Name: ").append(teachingAssistantTeam.getGithubTeamName()).append('\n');
 | 
				
			||||||
 | 
					            List<StudentTeam> assignedTeams = teachingAssistantTeam.getAssignedStudentTeams();
 | 
				
			||||||
 | 
					            for (StudentTeam studentTeam : assignedTeams) {
 | 
				
			||||||
 | 
					                sb.append("\tStudent Team ").append(studentTeam.getId()).append(": ");
 | 
				
			||||||
 | 
					                for (Student student : studentTeam.getStudents()) {
 | 
				
			||||||
 | 
					                    sb.append(student.getFullName()).append(" (S").append(student.getStudentNumber()).append("), ");
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                sb.append('\n');
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return sb.toString().getBytes();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private byte[] getContactInfo(Course course) {
 | 
				
			||||||
 | 
					        StringBuilder sb = new StringBuilder("Student Team Contact Details\n");
 | 
				
			||||||
 | 
					        for (StudentTeam team : course.getStudentTeams()) {
 | 
				
			||||||
 | 
					            sb.append("2019_Team_").append(team.getId()).append(": ");
 | 
				
			||||||
 | 
					            for (Student student : team.getStudents()) {
 | 
				
			||||||
 | 
					                sb.append(student.getFullName()).append(" (").append(student.getEmailAddress()).append("), ");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            sb.append("\n");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return sb.toString().getBytes();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,9 @@
 | 
				
			||||||
    <div class="sidebar_block">
 | 
					    <div class="sidebar_block">
 | 
				
			||||||
        <a th:href="@{/courses/{code}/student_teams/export(code=${course.getCode()})}">Export</a>
 | 
					        <a th:href="@{/courses/{code}/student_teams/export(code=${course.getCode()})}">Export</a>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="sidebar_block">
 | 
				
			||||||
 | 
					        <a th:href="@{/courses/{code}/student_teams/export_contact_info(code=${course.getCode()})}">Export Team Contact Details</a>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue