Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java =================================================================== diff -u -r21d1334882722398d65509c3a51673d32cd2d175 -r8ef9a217baba82b7b3decef6eeb21958bdba4d6a --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java (.../LearningController.java) (revision 21d1334882722398d65509c3a51673d32cd2d175) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/controller/LearningController.java (.../LearningController.java) (revision 8ef9a217baba82b7b3decef6eeb21958bdba4d6a) @@ -23,21 +23,8 @@ package org.lamsfoundation.lams.tool.peerreview.web.controller; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.log4j.Logger; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; @@ -62,8 +49,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.*; +import java.util.function.Function; /** * @author Steve.Ni @@ -95,7 +87,6 @@ * * @throws IOException * @throws ServletException - * */ @RequestMapping("/start") public String start(HttpServletRequest request, HttpSession session) throws IOException, ServletException { @@ -127,8 +118,8 @@ user = service.getUserByIDAndSession(userId, sessionId); if (user == null) { log.error(new StringBuilder( - "Unable to find specified user for peerreview activity. Screens are likely to fail. SessionId=") - .append(sessionId).append(" UserId=").append(userId).toString()); + "Unable to find specified user for peerreview activity. Screens are likely to fail. SessionId=").append( + sessionId).append(" UserId=").append(userId).toString()); } } else { UserDTO userDTO = (UserDTO) session.getAttribute(AttributeNames.USER); @@ -165,7 +156,6 @@ * * @throws IOException * @throws ServletException - * */ @RequestMapping("/refresh") @SuppressWarnings("unchecked") @@ -222,7 +212,6 @@ * * @throws IOException * @throws ServletException - * */ private String startRating(HttpServletRequest request, HttpSession session, SessionMap sessionMap, Long sessionId, PeerreviewUser user, ToolAccessMode mode, RatingCriteria currentCriteria, Boolean next) @@ -376,12 +365,10 @@ // ratings left by and by the user List ratingCriterias = service.getRatingCriterias(peerreview.getContentId()); - List allUsersDtos = peerreview.isShowRatingsLeftByUser() - ? new ArrayList<>(ratingCriterias.size()) - : null; - List currentUserDtos = peerreview.isShowRatingsLeftForUser() - ? new ArrayList<>(ratingCriterias.size()) - : null; + List allUsersDtos = peerreview.isShowRatingsLeftByUser() ? new ArrayList<>( + ratingCriterias.size()) : null; + List currentUserDtos = peerreview.isShowRatingsLeftForUser() ? new ArrayList<>( + ratingCriterias.size()) : null; Set processedCriteriaGroups = new HashSet<>(); for (RatingCriteria criteria : ratingCriterias) { @@ -392,34 +379,37 @@ processedCriteriaGroups.add(criteria.getRatingCriteriaGroupId()); } - boolean showAllUsers = peerreview.isSelfReview() || criteria.isRankingStyleRating() - || criteria.isHedgeStyleRating() || (mode != null && mode.isTeacher()); + boolean showAllUsers = + peerreview.isSelfReview() || criteria.isRankingStyleRating() || criteria.isHedgeStyleRating() || ( + mode != null && mode.isTeacher()); - int sorting = (criteria.isStarStyleRating() || criteria.isHedgeStyleRating()) - ? PeerreviewConstants.SORT_BY_AVERAGE_RESULT_DESC - : PeerreviewConstants.SORT_BY_AVERAGE_RESULT_ASC; + int sorting = PeerreviewConstants.SORT_BY_AVERAGE_RESULT_ASC; + if (criteria.isStarStyleRating() || criteria.isHedgeStyleRating()) { + sorting = PeerreviewConstants.SORT_BY_AVERAGE_RESULT_DESC; + } else if (criteria.isRubricsStyleRating()) { + sorting = PeerreviewConstants.SORT_BY_USERNAME_ASC; + } + final int sortingFinal = sorting; if (allUsersDtos != null) { - Function dtoBuilder = c -> service - .getUsersRatingsCommentsByCriteriaIdDTO(peerreview.getContentId(), sessionId, c, - user.getUserId(), false, sorting, null, showAllUsers, true); + Function dtoBuilder = c -> service.getUsersRatingsCommentsByCriteriaIdDTO( + peerreview.getContentId(), sessionId, c, user.getUserId(), false, sortingFinal, null, + showAllUsers, true); // for rubrics there is a single dto (first row) with list of all rows (including first) filled - StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() - ? PeerreviewServiceImpl.fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) - : dtoBuilder.apply(criteria); + StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() ? PeerreviewServiceImpl.fillCriteriaGroup( + criteria, ratingCriterias, dtoBuilder) : dtoBuilder.apply(criteria); allUsersDtos.add(dto); } if (currentUserDtos != null) { - Function dtoBuilder = c -> service - .getUsersRatingsCommentsByCriteriaIdDTO(peerreview.getContentId(), sessionId, c, - user.getUserId(), false, sorting, null, showAllUsers, false); + Function dtoBuilder = c -> service.getUsersRatingsCommentsByCriteriaIdDTO( + peerreview.getContentId(), sessionId, c, user.getUserId(), false, sortingFinal, null, + showAllUsers, false); // for rubrics there is a single dto (first row) with list of all rows (including first) filled - StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() - ? PeerreviewServiceImpl.fillCriteriaGroup(criteria, ratingCriterias, dtoBuilder) - : dtoBuilder.apply(criteria); + StyledCriteriaRatingDTO dto = criteria.isRubricsStyleRating() ? PeerreviewServiceImpl.fillCriteriaGroup( + criteria, ratingCriterias, dtoBuilder) : dtoBuilder.apply(criteria); currentUserDtos.add(dto); } } @@ -498,7 +488,6 @@ * * @throws IOException * @throws ServletException - * */ @RequestMapping("/edit") @SuppressWarnings("unchecked") @@ -553,14 +542,13 @@ // a Hibernate object and don't want to risk updating it in the db. Need to send a flag so why not make flag double as the // runtime min/max value while leaving min/max as the original criteria definition. int rateAllUsers = 0; - if ((criteria.isRankingStyleRating() && criteria.getMaxRating() == RatingCriteria.RATING_RANK_ALL) - || (criteria.isStarStyleRating() && criteria.getMinimumRates() == RatingCriteria.RATING_RANK_ALL) - || (criteria.isCommentRating() && criteria.getMinimumRates() == RatingCriteria.RATING_RANK_ALL)) { + if ((criteria.isRankingStyleRating() && criteria.getMaxRating() == RatingCriteria.RATING_RANK_ALL) || ( + criteria.isStarStyleRating() && criteria.getMinimumRates() == RatingCriteria.RATING_RANK_ALL) || ( + criteria.isCommentRating() && criteria.getMinimumRates() == RatingCriteria.RATING_RANK_ALL)) { rateAllUsers = service.getCountUsersBySession(toolSessionId, peerreview.isSelfReview() ? -1 : userId); - } else if ((criteria.isStarStyleRating() || criteria.isCommentRating()) - && (peerreview.getMinimumRates() > 0 || peerreview.getMaximumRates() > 0) - && (criteriaDto.getRatingCriteria().getMinimumRates() == 0 - && criteriaDto.getRatingCriteria().getMaximumRates() == 0)) { + } else if ((criteria.isStarStyleRating() || criteria.isCommentRating()) && (peerreview.getMinimumRates() > 0 + || peerreview.getMaximumRates() > 0) && (criteriaDto.getRatingCriteria().getMinimumRates() == 0 + && criteriaDto.getRatingCriteria().getMaximumRates() == 0)) { // override the min/max for stars based on old settings if needed (original Peer Review kept one setting for all criteria ) // does not matter if this change gets persisted to database. criteria.setMinimumRates(peerreview.getMinimumRates()); @@ -582,7 +570,6 @@ * * @throws IOException * @throws ServletException - * */ @RequestMapping("/nextPrev") @SuppressWarnings("unchecked") @@ -619,7 +606,6 @@ * @throws IOException * @throws ServletException * @throws JSONException - * */ @RequestMapping("/submitComments") @SuppressWarnings("unchecked") @@ -718,7 +704,6 @@ * * @throws IOException * @throws ServletException - * */ @RequestMapping("/submitRankingHedging") @SuppressWarnings("unchecked") @@ -771,8 +756,8 @@ } } } - valid = (ratings.size() == criteria.getMaxRating() || (ratings.size() >= service - .getCountUsersBySession(toolSessionId, peerreview.isSelfReview() ? -1 : user.getUserId()))); + valid = (ratings.size() == criteria.getMaxRating() || (ratings.size() >= service.getCountUsersBySession( + toolSessionId, peerreview.isSelfReview() ? -1 : user.getUserId()))); } service.rateItems(criteria, toolSessionId, userId, ratings); @@ -911,4 +896,4 @@ return finish(request, session); } -} +} \ No newline at end of file