Index: lams_monitoring/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r79516d0d2b83ab0a6a443249f506661ebfcf3b9b -r8ad6317cfff329136f05042200f2af81cbee110f --- lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 79516d0d2b83ab0a6a443249f506661ebfcf3b9b) +++ lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 8ad6317cfff329136f05042200f2af81cbee110f) @@ -418,12 +418,15 @@ label.ira = iRAT label.tra = tRAT label.ira.mark = iRAT mark +label.ira.mark.average = iRAT mark average label.ira.correct.count = iRAT correct answer count +label.ira.correct.count.average = iRAT correct answer count average label.average = Average label.tra.mark = tRAT mark label.tra.correct.count = tRAT correct answer count label.highest = Highest label.lowest = Lowest +label.summary = Summary label.burning.questions = Burning Qs label.forum = Forum label.aes = AEs Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/dto/TblGroupDTO.java =================================================================== diff -u -r79516d0d2b83ab0a6a443249f506661ebfcf3b9b -r8ad6317cfff329136f05042200f2af81cbee110f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/dto/TblGroupDTO.java (.../TblGroupDTO.java) (revision 79516d0d2b83ab0a6a443249f506661ebfcf3b9b) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/dto/TblGroupDTO.java (.../TblGroupDTO.java) (revision 8ad6317cfff329136f05042200f2af81cbee110f) @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.OptionalDouble; import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.util.AlphanumComparator; @@ -96,14 +97,16 @@ this.traCorrectAnswerCount = traCorrectAnswerCount; } - public double getIraScoreAverage() { - return userList.stream().filter(u -> u.getIraScore() != null).mapToDouble(TblUserDTO::getIraScore).average() - .orElse(0); + public Double getIraScoreAverage() { + OptionalDouble result = userList.stream().filter(u -> u.getIraScore() != null) + .mapToDouble(TblUserDTO::getIraScore).average(); + return result.isPresent() ? result.getAsDouble() : null; } - public double getIraCorrectAnswerCountAverage() { - return userList.stream().filter(u -> u.getIraScore() != null).mapToDouble(TblUserDTO::getIraCorrectAnswerCount) - .average().orElse(0); + public Double getIraCorrectAnswerCountAverage() { + OptionalDouble result = userList.stream().filter(u -> u.getIraScore() != null) + .mapToDouble(TblUserDTO::getIraCorrectAnswerCount).average(); + return result.isPresent() ? result.getAsDouble() : null; } public double getIraHighestScore() { Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/TblMonitoringController.java =================================================================== diff -u -r64bfad846c475db43b1b303e0df03735f39d34ce -r8ad6317cfff329136f05042200f2af81cbee110f --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/TblMonitoringController.java (.../TblMonitoringController.java) (revision 64bfad846c475db43b1b303e0df03735f39d34ce) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/TblMonitoringController.java (.../TblMonitoringController.java) (revision 8ad6317cfff329136f05042200f2af81cbee110f) @@ -140,62 +140,117 @@ Set groups = grouping == null ? null : grouping.getGroups(); Set groupDtos = new TreeSet<>(); - if (groups != null) { - for (Group group : groups) { - TblGroupDTO groupDto = new TblGroupDTO(group); - groupDtos.add(groupDto); + for (Group group : groups) { + TblGroupDTO groupDto = new TblGroupDTO(group); + groupDtos.add(groupDto); - if (group.getUsers() != null) { - for (User user : group.getUsers()) { - TblUserDTO userDto = new TblUserDTO(user.getUserDTO()); - groupDto.getUserList().add(userDto); + if (group.getUsers() != null) { + for (User user : group.getUsers()) { + TblUserDTO userDto = new TblUserDTO(user.getUserDTO()); + groupDto.getUserList().add(userDto); - //set up all user leaders - if (leaderUserIds.contains(user.getUserId().longValue())) { - userDto.setGroupLeader(true); - groupDto.setGroupLeader(userDto); - } + //set up all user leaders + if (leaderUserIds.contains(user.getUserId().longValue())) { + userDto.setGroupLeader(true); + groupDto.setGroupLeader(userDto); + } - if (isIraAvailable) { - // find according iraGradebookUserActivity - for (GradebookUserActivity iraGradebookUserActivity : iraGradebookUserActivities) { - if (iraGradebookUserActivity.getLearner().getUserId().equals(user.getUserId())) { - userDto.setIraScore(iraGradebookUserActivity.getMark()); + if (isIraAvailable) { + // find according iraGradebookUserActivity + for (GradebookUserActivity iraGradebookUserActivity : iraGradebookUserActivities) { + if (iraGradebookUserActivity.getLearner().getUserId().equals(user.getUserId())) { + userDto.setIraScore(iraGradebookUserActivity.getMark()); - break; - } + break; } + } - Integer correctAnswerCount = commonAssessmentService.countCorrectAnswers(iraToolContentId, - user.getUserId()); - if (correctAnswerCount != null) { - userDto.setIraCorrectAnswerCount(correctAnswerCount); - } + Integer correctAnswerCount = commonAssessmentService.countCorrectAnswers(iraToolContentId, + user.getUserId()); + if (correctAnswerCount != null) { + userDto.setIraCorrectAnswerCount(correctAnswerCount); } } + } - if (isTraAvailable && groupDto.getGroupLeader() != null) { - //find according traGradebookUserActivity - for (GradebookUserActivity traGradebookUserActivity : traGradebookUserActivities) { - if (traGradebookUserActivity.getLearner().getUserId() - .equals(groupDto.getGroupLeader().getUserID())) { - groupDto.setTraScore(traGradebookUserActivity.getMark()); + if (isTraAvailable && groupDto.getGroupLeader() != null) { + //find according traGradebookUserActivity + for (GradebookUserActivity traGradebookUserActivity : traGradebookUserActivities) { + if (traGradebookUserActivity.getLearner().getUserId() + .equals(groupDto.getGroupLeader().getUserID())) { + groupDto.setTraScore(traGradebookUserActivity.getMark()); - break; - } + break; } + } - Integer correctAnswerCount = commonScratchieService.countCorrectAnswers(traToolContentId, - groupDto.getGroupLeader().getUserID()); - if (correctAnswerCount != null) { - groupDto.setTraCorrectAnswerCount(correctAnswerCount); - } + Integer correctAnswerCount = commonScratchieService.countCorrectAnswers(traToolContentId, + groupDto.getGroupLeader().getUserID()); + if (correctAnswerCount != null) { + groupDto.setTraCorrectAnswerCount(correctAnswerCount); } } } } request.setAttribute("groupDtos", groupDtos); + double highestIraScoreAverage = 0; + double lowestIraScoreAverage = Double.MAX_VALUE; + double highestTraScore = 0; + double lowestTraScore = Double.MAX_VALUE; + + int iraGroupsCount = 0; + int traGroupsCount = 0; + int iraCorrectAnswerCountAverageSum = 0; + int traCorrectAnswerSum = 0; + double iraAverageScoreSum = 0; + double traScoreSum = 0; + + for (TblGroupDTO group : groupDtos) { + Double iraScoreAverage = group.getIraScoreAverage(); + Double traScore = group.getTraScore(); + + if (iraScoreAverage != null) { + iraAverageScoreSum += iraScoreAverage; + iraCorrectAnswerCountAverageSum += group.getIraCorrectAnswerCountAverage(); + iraGroupsCount++; + + if (iraScoreAverage > highestIraScoreAverage) { + highestIraScoreAverage = iraScoreAverage; + } else if (iraScoreAverage < lowestIraScoreAverage) { + lowestIraScoreAverage = iraScoreAverage; + } + } + + if (traScore != null) { + traScoreSum += traScore; + traCorrectAnswerSum += group.getTraCorrectAnswerCount(); + traGroupsCount++; + + if (traScore > highestTraScore) { + highestTraScore = traScore; + } else if (traScore < lowestTraScore) { + lowestTraScore = traScore; + } + } + } + + if (iraGroupsCount > 1) { + request.setAttribute("highestIraScoreAverage", highestIraScoreAverage); + request.setAttribute("lowestIraScoreAverage", highestIraScoreAverage <= 0 ? 0 : lowestIraScoreAverage); + + request.setAttribute("averageIraScoreAverage", iraAverageScoreSum / iraGroupsCount); + request.setAttribute("averageIraCorrectAnswerCountAverage", + iraCorrectAnswerCountAverageSum / iraGroupsCount); + } + if (traGroupsCount > 1) { + request.setAttribute("highestTraScore", highestTraScore); + request.setAttribute("lowestTraScore", highestTraScore <= 0 ? 0 : lowestTraScore); + + request.setAttribute("averageTraScore", traScoreSum / traGroupsCount); + request.setAttribute("averageTraCorrectAnswerCount", traCorrectAnswerSum / traGroupsCount); + } + return "tblmonitor/teams"; } Index: lams_monitoring/web/tblmonitor/teams.jsp =================================================================== diff -u -r79516d0d2b83ab0a6a443249f506661ebfcf3b9b -r8ad6317cfff329136f05042200f2af81cbee110f --- lams_monitoring/web/tblmonitor/teams.jsp (.../teams.jsp) (revision 79516d0d2b83ab0a6a443249f506661ebfcf3b9b) +++ lams_monitoring/web/tblmonitor/teams.jsp (.../teams.jsp) (revision 8ad6317cfff329136f05042200f2af81cbee110f) @@ -176,12 +176,175 @@
+
+
+

+ +

+
+ +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + ${groupDto.traScore} + + ${groupDto.traCorrectAnswerCount} + + + + + + + + + +
+ + + - + + + + + + + + + - + + + + + + + + + - + + + + + + + + + - + + + + + +
+
+
+
+
+
@@ -275,7 +438,7 @@ - 0 + - @@ -290,7 +453,7 @@ - 0 + - @@ -310,18 +473,20 @@ - - - - - - - - - - - - + + + + + + + + + + + + + +
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r64bfad846c475db43b1b303e0df03735f39d34ce -r8ad6317cfff329136f05042200f2af81cbee110f --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 64bfad846c475db43b1b303e0df03735f39d34ce) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 8ad6317cfff329136f05042200f2af81cbee110f) @@ -3332,7 +3332,7 @@ if (user == null) { return null; } - AssessmentResult assessmentResult = getLastAssessmentResult(assessment.getUid(), user.getUid()); + AssessmentResult assessmentResult = getLastAssessmentResult(assessment.getUid(), Integer.valueOf(userId).longValue()); if (assessmentResult == null) { return 0; }