package fi.otavanopisto.pyramus.views.students; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; import fi.internetix.smvc.controllers.PageRequestContext; import fi.otavanopisto.pyramus.breadcrumbs.Breadcrumbable; import fi.otavanopisto.pyramus.dao.DAOFactory; import fi.otavanopisto.pyramus.dao.courses.CourseStudentDAO; import fi.otavanopisto.pyramus.dao.grading.CourseAssessmentRequestDAO; import fi.otavanopisto.pyramus.domainmodel.courses.CourseStudent; import fi.otavanopisto.pyramus.domainmodel.grading.CourseAssessmentRequest; import fi.otavanopisto.pyramus.framework.PyramusViewController; import fi.otavanopisto.pyramus.framework.UserRole; public class StudentCourseAssessmentRequestsPopupViewController extends PyramusViewController implements Breadcrumbable { public UserRole[] getAllowedRoles() { return new UserRole[] { UserRole.MANAGER, UserRole.STUDY_PROGRAMME_LEADER, UserRole.ADMINISTRATOR }; } public void process(PageRequestContext pageRequestContext) { CourseAssessmentRequestDAO courseAssessmentRequestDAO = DAOFactory.getInstance().getCourseAssessmentRequestDAO(); CourseStudentDAO courseStudentDAO = DAOFactory.getInstance().getCourseStudentDAO(); Long courseStudentId = pageRequestContext.getLong("courseStudent"); CourseStudent courseStudent = courseStudentDAO.findById(courseStudentId ); List<CourseAssessmentRequest> courseAssessmentRequests = courseAssessmentRequestDAO.listByCourseStudent(courseStudent); Collections.sort(courseAssessmentRequests, new Comparator<CourseAssessmentRequest>() { @Override public int compare(CourseAssessmentRequest o1, CourseAssessmentRequest o2) { return o2.getCreated().compareTo(o1.getCreated()); } }); pageRequestContext.getRequest().setAttribute("courseStudent", courseStudent); pageRequestContext.getRequest().setAttribute("courseAssessmentRequests", courseAssessmentRequests); pageRequestContext.setIncludeJSP("/templates/students/studentcourseassessmentrequestspopup.jsp"); } /** * Returns the localized name of this page. Used e.g. for breadcrumb navigation. * * This view does not need a name because it's used as a content to popup dialog * * @param locale The locale to be used for the name * * @return The localized name of this page */ public String getName(Locale locale) { return ""; } }