Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java =================================================================== diff -u -r6437f6b8a894d41f5dd5a76a6fe7e95d50171900 -r56c27b3189648840c72a62d403908a6e4378c7af --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java (.../IPeerreviewService.java) (revision 6437f6b8a894d41f5dd5a76a6fe7e95d50171900) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java (.../IPeerreviewService.java) (revision 56c27b3189648840c72a62d403908a6e4378c7af) @@ -40,6 +40,7 @@ import org.lamsfoundation.lams.tool.peerreview.util.EmailAnalysisBuilder.LearnerData; import org.lamsfoundation.lams.tool.service.ICommonToolService; import org.lamsfoundation.lams.util.excel.ExcelSheet; +import org.lamsfoundation.lams.web.util.SessionMap; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -326,5 +327,11 @@ int getCountItemsRatedByUserByCriteria(final Long criteriaId, final Integer userId); /** For this user, there has be int[0] ratings out of a possible int[1] ratings */ - public int[] getNumberPossibleRatings(Long toolContentId, Long toolSessionId, Long userId); -} + int[] getNumberPossibleRatings(Long toolContentId, Long toolSessionId, Long userId); + + Map> getRubricsData(SessionMap sessionMap, + RatingCriteria criteria, Collection criterias); + + Map getRubricsLearnerData(Long toolSessionId, RatingCriteria criteria, + Collection criterias); +} \ No newline at end of file Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java =================================================================== diff -u -re59d1e9f5495d38237e253e368e4d59f9b0980e0 -r56c27b3189648840c72a62d403908a6e4378c7af --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision e59d1e9f5495d38237e253e368e4d59f9b0980e0) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision 56c27b3189648840c72a62d403908a6e4378c7af) @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -93,6 +94,7 @@ import org.lamsfoundation.lams.util.JsonUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.excel.ExcelSheet; +import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.web.util.HtmlUtils; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -570,6 +572,49 @@ return retValue; } + @Override + @SuppressWarnings("unchecked") + public Map> getRubricsData(SessionMap sessionMap, + RatingCriteria criteria, Collection criterias) { + List sessionList = (List) sessionMap.get(PeerreviewConstants.ATTR_SUMMARY_LIST); + + Map> rubricsData = new HashMap<>(); + for (GroupSummary session : sessionList) { + Long toolSessionId = session.getSessionId(); + Map learnerData = getRubricsLearnerData(toolSessionId, criteria, + criterias); + rubricsData.put(toolSessionId, learnerData); + } + + return rubricsData; + } + + @Override + public Map getRubricsLearnerData(Long toolSessionId, + RatingCriteria criteria, Collection criterias) { + Map learnerData = new TreeMap<>( + Comparator.comparing(PeerreviewUser::getFirstName).thenComparing(PeerreviewUser::getLastName)); + + criterias = criterias.stream() + .filter(c -> criteria.getRatingCriteriaGroupId().equals(c.getRatingCriteriaGroupId())) + .collect(Collectors.toList()); + Collection criteriaIds = criterias.stream() + .collect(Collectors.mapping(RatingCriteria::getRatingCriteriaId, Collectors.toSet())); + + Collection learners = getUsersBySession(toolSessionId); + List ratings = ratingService.getRatingsByCriteriasAndItems(criteriaIds, + learners.stream().collect(Collectors.mapping(PeerreviewUser::getUserId, Collectors.toSet()))); + + for (PeerreviewUser learner : learners) { + Function dtoBuilder = c -> PeerreviewServiceImpl + .getRubricsCriteriaDTO(c, learner.getUserId().intValue(), true, ratings); + StyledCriteriaRatingDTO dto = PeerreviewServiceImpl.fillCriteriaGroup(criteria, criterias, dtoBuilder); + learnerData.put(learner, dto); + } + + return learnerData; + } + public static StyledCriteriaRatingDTO fillCriteriaGroup(RatingCriteria targetCriteria, Collection allCriteria, Function dtoProducer) { Integer groupId = targetCriteria.getRatingCriteriaGroupId(); Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java =================================================================== diff -u -r7d4a3f612eb7ea53f43052f9990aadc818243ca9 -r56c27b3189648840c72a62d403908a6e4378c7af --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 7d4a3f612eb7ea53f43052f9990aadc818243ca9) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 56c27b3189648840c72a62d403908a6e4378c7af) @@ -27,16 +27,10 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TimeZone; -import java.util.TreeMap; -import java.util.function.Function; -import java.util.stream.Collectors; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; @@ -46,7 +40,6 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.rating.dto.StyledCriteriaRatingDTO; -import org.lamsfoundation.lams.rating.model.Rating; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.rating.service.IRatingService; import org.lamsfoundation.lams.tool.peerreview.PeerreviewConstants; @@ -126,7 +119,7 @@ PeerreviewServiceImpl.removeGroupedCriteria(flattenedCriterias); if (flattenedCriterias.size() == 1 && flattenedCriterias.get(0).isRubricsStyleRating()) { - Map> rubricsData = getRubricsData(sessionMap, + Map> rubricsData = service.getRubricsData(sessionMap, flattenedCriterias.get(0), criterias); request.setAttribute("rubricsData", rubricsData); } @@ -154,8 +147,8 @@ Long toolContentId = (Long) sessionMap.get(PeerreviewConstants.ATTR_TOOL_CONTENT_ID); List criterias = service.getRatingCriterias(toolContentId); - Map rubricsLearnerData = getRubricsLearnerData(toolSessionId, - criteria, criterias); + Map rubricsLearnerData = service + .getRubricsLearnerData(toolSessionId, criteria, criterias); request.setAttribute("rubricsLearnerData", rubricsLearnerData); } @@ -695,45 +688,4 @@ service.setUserHidden(toolContentId, userUid, isHidden); return ""; } - - @SuppressWarnings("unchecked") - private Map> getRubricsData( - SessionMap sessionMap, RatingCriteria criteria, Collection criterias) { - List sessionList = (List) sessionMap.get(PeerreviewConstants.ATTR_SUMMARY_LIST); - - Map> rubricsData = new HashMap<>(); - for (GroupSummary session : sessionList) { - Long toolSessionId = session.getSessionId(); - Map learnerData = getRubricsLearnerData(toolSessionId, criteria, - criterias); - rubricsData.put(toolSessionId, learnerData); - } - - return rubricsData; - } - - private Map getRubricsLearnerData(Long toolSessionId, - RatingCriteria criteria, Collection criterias) { - Map learnerData = new TreeMap<>( - Comparator.comparing(PeerreviewUser::getFirstName).thenComparing(PeerreviewUser::getLastName)); - - criterias = criterias.stream() - .filter(c -> criteria.getRatingCriteriaGroupId().equals(c.getRatingCriteriaGroupId())) - .collect(Collectors.toList()); - Collection criteriaIds = criterias.stream() - .collect(Collectors.mapping(RatingCriteria::getRatingCriteriaId, Collectors.toSet())); - - Collection learners = service.getUsersBySession(toolSessionId); - List ratings = ratingService.getRatingsByCriteriasAndItems(criteriaIds, - learners.stream().collect(Collectors.mapping(PeerreviewUser::getUserId, Collectors.toSet()))); - - for (PeerreviewUser learner : learners) { - Function dtoBuilder = c -> PeerreviewServiceImpl - .getRubricsCriteriaDTO(c, learner.getUserId().intValue(), true, ratings); - StyledCriteriaRatingDTO dto = PeerreviewServiceImpl.fillCriteriaGroup(criteria, criterias, dtoBuilder); - learnerData.put(learner, dto); - } - - return learnerData; - } -} +} \ No newline at end of file Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/TblMonitoringController.java =================================================================== diff -u -r40de3afab4e8d589660daffb6efd6e568e87f8fa -r56c27b3189648840c72a62d403908a6e4378c7af --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 40de3afab4e8d589660daffb6efd6e568e87f8fa) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/TblMonitoringController.java (.../TblMonitoringController.java) (revision 56c27b3189648840c72a62d403908a6e4378c7af) @@ -1,14 +1,19 @@ package org.lamsfoundation.lams.tool.peerreview.web.controller; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; +import org.lamsfoundation.lams.rating.dto.StyledCriteriaRatingDTO; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.tool.peerreview.PeerreviewConstants; import org.lamsfoundation.lams.tool.peerreview.dto.GroupSummary; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; +import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewUser; import org.lamsfoundation.lams.tool.peerreview.service.IPeerreviewService; +import org.lamsfoundation.lams.tool.peerreview.service.PeerreviewServiceImpl; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -31,7 +36,7 @@ @RequestMapping("/peerreview") public String peerreview(HttpServletRequest request) { // initial Session Map - SessionMap sessionMap = new SessionMap(); + SessionMap sessionMap = new SessionMap<>(); request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); request.setAttribute(PeerreviewConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); @@ -47,11 +52,20 @@ sessionMap.put(PeerreviewConstants.ATTR_TOOL_CONTENT_ID, contentId); sessionMap.put(PeerreviewConstants.ATTR_IS_GROUPED_ACTIVITY, peerreviewService.isGroupedActivity(contentId)); sessionMap.put("tblMonitoring", true); - + List criterias = peerreviewService.getRatingCriterias(contentId); - request.setAttribute(PeerreviewConstants.ATTR_CRITERIAS, criterias); - + List flattenedCriterias = new ArrayList<>(criterias); + PeerreviewServiceImpl.removeGroupedCriteria(flattenedCriterias); + + if (flattenedCriterias.size() == 1 && flattenedCriterias.get(0).isRubricsStyleRating()) { + Map> rubricsData = peerreviewService + .getRubricsData(sessionMap, flattenedCriterias.get(0), criterias); + request.setAttribute("rubricsData", rubricsData); + } + + request.setAttribute(PeerreviewConstants.ATTR_CRITERIAS, flattenedCriterias); + return "/pages/monitoring/summary"; } - + } \ No newline at end of file