Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java =================================================================== diff -u -re71845f3bb0d02540f9c16bcc783a71ee924de51 -r4bed7d4c0672c281ae66a77fad0d69fb064a9657 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision e71845f3bb0d02540f9c16bcc783a71ee924de51) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision 4bed7d4c0672c281ae66a77fad0d69fb064a9657) @@ -29,7 +29,9 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -38,6 +40,7 @@ import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; +import java.util.function.Function; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -567,6 +570,43 @@ return retValue; } + public static StyledCriteriaRatingDTO fillCriteriaGroup(RatingCriteria targetCriteria, + Collection allCriteria, Function dtoProducer) { + Integer groupId = targetCriteria.getRatingCriteriaGroupId(); + StyledCriteriaRatingDTO result = null; + List criteriaGroup = new LinkedList<>(); + for (RatingCriteria criteriaInGroup : allCriteria) { + if (!groupId.equals(criteriaInGroup.getRatingCriteriaGroupId())) { + continue; + } + + StyledCriteriaRatingDTO dto = dtoProducer.apply(criteriaInGroup); + if (criteriaInGroup.getRatingCriteriaId().equals(targetCriteria.getRatingCriteriaId())) { + criteriaGroup.add(0, dto); + result = dto; + result.setCriteriaGroup(criteriaGroup); + } else { + criteriaGroup.add(dto); + } + } + return result; + } + + public static void removeGroupedCriteria(Collection criteria) { + Set processedCriteriaGroups = new HashSet<>(); + Iterator criteriaIter = criteria.iterator(); + while (criteriaIter.hasNext()) { + RatingCriteria criterion = criteriaIter.next(); + if (criterion.getRatingCriteriaGroupId() != null) { + if (processedCriteriaGroups.contains(criterion.getRatingCriteriaGroupId())) { + criteriaIter.remove(); + } else { + processedCriteriaGroups.add(criterion.getRatingCriteriaGroupId()); + } + } + } + } + // ***************************************************************************** // private methods // ***************************************************************************** Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java =================================================================== diff -u -re71845f3bb0d02540f9c16bcc783a71ee924de51 -r4bed7d4c0672c281ae66a77fad0d69fb064a9657 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java (.../LearningController.java) (revision e71845f3bb0d02540f9c16bcc783a71ee924de51) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java (.../LearningController.java) (revision 4bed7d4c0672c281ae66a77fad0d69fb064a9657) @@ -25,12 +25,9 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -52,6 +49,7 @@ import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewUser; import org.lamsfoundation.lams.tool.peerreview.service.IPeerreviewService; import org.lamsfoundation.lams.tool.peerreview.service.PeerreviewApplicationException; +import org.lamsfoundation.lams.tool.peerreview.service.PeerreviewServiceImpl; import org.lamsfoundation.lams.tool.peerreview.web.form.ReflectionForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; @@ -277,18 +275,7 @@ criterias = service.getCriteriasByToolContentId(peerreview.getContentId()); // for criteria groups, like rubrics, count only first criterion - Set processedCriteriaGroups = new HashSet<>(); - Iterator criteriaIter = criterias.iterator(); - while (criteriaIter.hasNext()) { - RatingCriteria criterion = criteriaIter.next(); - if (criterion.getRatingCriteriaGroupId() != null) { - if (processedCriteriaGroups.contains(criterion.getRatingCriteriaGroupId())) { - criteriaIter.remove(); - } else { - processedCriteriaGroups.add(criterion.getRatingCriteriaGroupId()); - } - } - } + PeerreviewServiceImpl.removeGroupedCriteria(criterias); if (criterias.size() > 0) { if (currentCriteria == null) { @@ -423,7 +410,7 @@ // for rubrics there is a single dto (first row) with list of all rows (including first) filled StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() - ? fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) + ? PeerreviewServiceImpl.fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) : dtoBuilder.apply(criteria); allUsersDtos.add(dto); } @@ -436,7 +423,7 @@ // for rubrics there is a single dto (first row) with list of all rows (including first) filled StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() - ? fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) + ? PeerreviewServiceImpl.fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) : dtoBuilder.apply(criteria); currentUserDtos.add(dto); } @@ -558,7 +545,7 @@ if (criteria.isRubricsStyleRating()) { List criterias = service.getRatingCriterias(peerreview.getContentId()); - criteriaDto = fillCriteriaGroup(criteria, criterias, + criteriaDto = PeerreviewServiceImpl.fillCriteriaGroup(criteria, criterias, entryCriteria -> service.getUsersRatingsCommentsByCriteriaIdDTO(peerreview.getContentId(), toolSessionId, entryCriteria, userId, false, PeerreviewConstants.SORT_BY_USERNAME_ASC, null, peerreview.isSelfReview(), true)); @@ -929,26 +916,4 @@ return finish(request, session); } - - private StyledCriteriaRatingDTO fillCriteriaGroup(RatingCriteria targetCriteria, - Collection allCriteria, Function dtoProducer) { - Integer groupId = targetCriteria.getRatingCriteriaGroupId(); - StyledCriteriaRatingDTO result = null; - List criteriaGroup = new LinkedList<>(); - for (RatingCriteria criteriaInGroup : allCriteria) { - if (!groupId.equals(criteriaInGroup.getRatingCriteriaGroupId())) { - continue; - } - - StyledCriteriaRatingDTO dto = dtoProducer.apply(criteriaInGroup); - if (criteriaInGroup.getRatingCriteriaId().equals(targetCriteria.getRatingCriteriaId())) { - criteriaGroup.add(0, dto); - result = dto; - result.setCriteriaGroup(criteriaGroup); - } else { - criteriaGroup.add(dto); - } - } - return result; - } } Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java =================================================================== diff -u -r1ea6942ef098dafaea3e977152af79ddf5f7f8dd -r4bed7d4c0672c281ae66a77fad0d69fb064a9657 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 1ea6942ef098dafaea3e977152af79ddf5f7f8dd) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/MonitoringController.java (.../MonitoringController.java) (revision 4bed7d4c0672c281ae66a77fad0d69fb064a9657) @@ -27,7 +27,10 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.TimeZone; import javax.servlet.ServletException; @@ -43,6 +46,7 @@ import org.lamsfoundation.lams.tool.peerreview.dto.GroupSummary; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; import org.lamsfoundation.lams.tool.peerreview.service.IPeerreviewService; +import org.lamsfoundation.lams.tool.peerreview.service.PeerreviewServiceImpl; import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.FileUtil; import org.lamsfoundation.lams.util.JsonUtil; @@ -106,6 +110,9 @@ sessionMap.put(PeerreviewConstants.ATTR_IS_GROUPED_ACTIVITY, service.isGroupedActivity(contentId)); List criterias = service.getRatingCriterias(contentId); + + PeerreviewServiceImpl.removeGroupedCriteria(criterias); + request.setAttribute(PeerreviewConstants.ATTR_CRITERIAS, criterias); return MONITORING_PATH; } Index: lams_tool_preview/web/pages/monitoring/summary.jsp =================================================================== diff -u -rdba2f7d55fdf5f5048e1f0c3ad9bcc931fc96220 -r4bed7d4c0672c281ae66a77fad0d69fb064a9657 --- lams_tool_preview/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision dba2f7d55fdf5f5048e1f0c3ad9bcc931fc96220) +++ lams_tool_preview/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 4bed7d4c0672c281ae66a77fad0d69fb064a9657) @@ -108,6 +108,7 @@
+ @@ -122,7 +123,20 @@ ?sessionMapID=${sessionMapID}&toolSessionId=${groupSummary.sessionId}&criteriaId=${criteria.ratingCriteriaId} + + + + +  ${rubricsCriteriaCounter} + + + + + + + + +