Search in sources :

Example 1 with StudentListSectionData

use of teammates.ui.template.StudentListSectionData in project teammates by TEAMMATES.

the class InstructorSearchPageData method createStudentRows.

private List<StudentListSectionData> createStudentRows(String courseId, StudentSearchResultBundle studentSearchResultBundle) {
    List<StudentListSectionData> rows = new ArrayList<>();
    List<StudentAttributes> studentsInCourse = filterStudentsByCourse(courseId, studentSearchResultBundle);
    Map<String, Set<String>> sectionNameToTeamNameMap = new HashMap<>();
    Map<String, List<StudentAttributes>> teamNameToStudentsMap = new HashMap<>();
    Map<String, String> emailToPhotoUrlMap = new HashMap<>();
    for (StudentAttributes student : studentsInCourse) {
        String teamName = student.team;
        String sectionName = student.section;
        String viewPhotoLink = addUserIdToUrl(student.getPublicProfilePictureUrl());
        emailToPhotoUrlMap.put(student.email, viewPhotoLink);
        teamNameToStudentsMap.computeIfAbsent(teamName, key -> new ArrayList<>()).add(student);
        sectionNameToTeamNameMap.computeIfAbsent(sectionName, key -> new HashSet<>()).add(teamName);
    }
    List<SectionDetailsBundle> sections = new ArrayList<>();
    sectionNameToTeamNameMap.forEach((sectionName, teamNameList) -> {
        SectionDetailsBundle sdb = new SectionDetailsBundle();
        sdb.name = sectionName;
        ArrayList<TeamDetailsBundle> teams = new ArrayList<>();
        for (String teamName : teamNameList) {
            TeamDetailsBundle tdb = new TeamDetailsBundle();
            tdb.name = teamName;
            tdb.students = teamNameToStudentsMap.get(teamName);
            teams.add(tdb);
        }
        sdb.teams = teams;
        sections.add(sdb);
    });
    for (SectionDetailsBundle section : sections) {
        InstructorAttributes instructor = studentSearchResultBundle.courseIdInstructorMap.get(courseId);
        boolean isAllowedToViewStudentInSection = instructor.isAllowedForPrivilege(section.name, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS);
        boolean isAllowedToModifyStudent = instructor.isAllowedForPrivilege(section.name, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT);
        rows.add(new StudentListSectionData(section, isAllowedToViewStudentInSection, isAllowedToModifyStudent, emailToPhotoUrlMap, account.googleId, getSessionToken()));
    }
    return rows;
}
Also used : InstructorAttributes(teammates.common.datatransfer.attributes.InstructorAttributes) Const(teammates.common.util.Const) SearchStudentsTable(teammates.ui.template.SearchStudentsTable) QuestionTable(teammates.ui.template.QuestionTable) HashMap(java.util.HashMap) StudentAttributes(teammates.common.datatransfer.attributes.StudentAttributes) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) FeedbackResponseCommentSearchResultBundle(teammates.common.datatransfer.FeedbackResponseCommentSearchResultBundle) Map(java.util.Map) StudentListSectionData(teammates.ui.template.StudentListSectionData) SectionDetailsBundle(teammates.common.datatransfer.SectionDetailsBundle) FeedbackResponseAttributes(teammates.common.datatransfer.attributes.FeedbackResponseAttributes) FeedbackQuestionAttributes(teammates.common.datatransfer.attributes.FeedbackQuestionAttributes) SearchFeedbackSessionDataTable(teammates.ui.template.SearchFeedbackSessionDataTable) Set(java.util.Set) AccountAttributes(teammates.common.datatransfer.attributes.AccountAttributes) ZoneId(java.time.ZoneId) TeamDetailsBundle(teammates.common.datatransfer.TeamDetailsBundle) List(java.util.List) StudentSearchResultBundle(teammates.common.datatransfer.StudentSearchResultBundle) FeedbackResponseCommentAttributes(teammates.common.datatransfer.attributes.FeedbackResponseCommentAttributes) FeedbackSessionRow(teammates.ui.template.FeedbackSessionRow) FeedbackResponseCommentRow(teammates.ui.template.FeedbackResponseCommentRow) ResponseRow(teammates.ui.template.ResponseRow) HashSet(java.util.HashSet) Set(java.util.Set) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) StudentAttributes(teammates.common.datatransfer.attributes.StudentAttributes) SectionDetailsBundle(teammates.common.datatransfer.SectionDetailsBundle) InstructorAttributes(teammates.common.datatransfer.attributes.InstructorAttributes) TeamDetailsBundle(teammates.common.datatransfer.TeamDetailsBundle) StudentListSectionData(teammates.ui.template.StudentListSectionData) ArrayList(java.util.ArrayList) List(java.util.List) HashSet(java.util.HashSet)

Example 2 with StudentListSectionData

use of teammates.ui.template.StudentListSectionData in project teammates by TEAMMATES.

the class InstructorCourseDetailsPageData method init.

public void init(InstructorAttributes currentInstructor, CourseDetailsBundle courseDetails, List<InstructorAttributes> instructors) {
    this.currentInstructor = currentInstructor;
    this.courseDetails = courseDetails;
    this.instructors = instructors;
    boolean isDisabled = !currentInstructor.isAllowedForPrivilege(Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT);
    String courseId = sanitizeForJs(courseDetails.course.getId());
    String href = sanitizeForJs(getInstructorCourseRemindLink(courseDetails.course.getId()));
    courseRemindButton = createButton(null, "btn btn-primary", "button_remind", href, Const.Tooltips.COURSE_REMIND, "tooltip", courseId, isDisabled);
    String hrefDeleteStudents = sanitizeForJs(getInstructorCourseStudentDeleteAllLink(courseId));
    courseDeleteAllButton = createButton(null, "btn btn-danger course-student-delete-all-link", "button-delete-all", hrefDeleteStudents, null, null, courseId, isDisabled);
    this.sections = new ArrayList<>();
    for (SectionDetailsBundle section : courseDetails.sections) {
        Map<String, String> emailPhotoUrlMapping = new HashMap<>();
        for (TeamDetailsBundle teamDetails : section.teams) {
            for (StudentAttributes student : teamDetails.students) {
                String studentPhotoUrl = student.getPublicProfilePictureUrl();
                studentPhotoUrl = Url.addParamToUrl(studentPhotoUrl, Const.ParamsNames.USER_ID, account.googleId);
                emailPhotoUrlMapping.put(student.email, studentPhotoUrl);
            }
        }
        boolean isAllowedToViewStudentInSection = currentInstructor.isAllowedForPrivilege(section.name, Const.ParamsNames.INSTRUCTOR_PERMISSION_VIEW_STUDENT_IN_SECTIONS);
        boolean isAllowedToModifyStudent = currentInstructor.isAllowedForPrivilege(section.name, Const.ParamsNames.INSTRUCTOR_PERMISSION_MODIFY_STUDENT);
        this.sections.add(new StudentListSectionData(section, isAllowedToViewStudentInSection, isAllowedToModifyStudent, emailPhotoUrlMapping, account.googleId, getSessionToken()));
    }
    if (sections.size() == 1) {
        StudentListSectionData section = sections.get(0);
        this.hasSection = !"None".equals(section.getSectionName());
    } else {
        this.hasSection = true;
    }
}
Also used : TeamDetailsBundle(teammates.common.datatransfer.TeamDetailsBundle) HashMap(java.util.HashMap) StudentListSectionData(teammates.ui.template.StudentListSectionData) SectionDetailsBundle(teammates.common.datatransfer.SectionDetailsBundle) StudentAttributes(teammates.common.datatransfer.attributes.StudentAttributes)

Aggregations

HashMap (java.util.HashMap)2 SectionDetailsBundle (teammates.common.datatransfer.SectionDetailsBundle)2 TeamDetailsBundle (teammates.common.datatransfer.TeamDetailsBundle)2 StudentAttributes (teammates.common.datatransfer.attributes.StudentAttributes)2 StudentListSectionData (teammates.ui.template.StudentListSectionData)2 ZoneId (java.time.ZoneId)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 FeedbackResponseCommentSearchResultBundle (teammates.common.datatransfer.FeedbackResponseCommentSearchResultBundle)1 StudentSearchResultBundle (teammates.common.datatransfer.StudentSearchResultBundle)1 AccountAttributes (teammates.common.datatransfer.attributes.AccountAttributes)1 FeedbackQuestionAttributes (teammates.common.datatransfer.attributes.FeedbackQuestionAttributes)1 FeedbackResponseAttributes (teammates.common.datatransfer.attributes.FeedbackResponseAttributes)1 FeedbackResponseCommentAttributes (teammates.common.datatransfer.attributes.FeedbackResponseCommentAttributes)1 InstructorAttributes (teammates.common.datatransfer.attributes.InstructorAttributes)1 Const (teammates.common.util.Const)1 FeedbackResponseCommentRow (teammates.ui.template.FeedbackResponseCommentRow)1