Index: lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java =================================================================== diff -u -r5dbbc7b9946ede2b5de406e9adb39928e1dda083 -r7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778 --- lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision 5dbbc7b9946ede2b5de406e9adb39928e1dda083) +++ lams_central/src/java/org/lamsfoundation/lams/web/RatingServlet.java (.../RatingServlet.java) (revision 7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778) @@ -129,7 +129,7 @@ NumberFormat numberFormat = NumberFormat.getInstance(Locale.US); numberFormat.setMaximumFractionDigits(1); - JSONObject.put("userRating", numberFormat.format(rating)); + JSONObject.put("userRating", averageRatingDTO.getUserRating()); JSONObject.put("averageRating", averageRatingDTO.getAverageRating()); JSONObject.put("numberOfVotes", averageRatingDTO.getNumberOfVotes()); } Index: lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java =================================================================== diff -u -r4972b394013bef3bc563652df80d9c2dbb04e238 -r7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778 --- lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java (.../RatingCriteria.java) (revision 4972b394013bef3bc563652df80d9c2dbb04e238) +++ lams_common/src/java/org/lamsfoundation/lams/rating/model/RatingCriteria.java (.../RatingCriteria.java) (revision 7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778) @@ -94,7 +94,9 @@ public static final int RATING_STYLE_RANKING = 2; public static final int RATING_STYLE_HEDGING = 3; - public static final int RATING_STYLE_STAR_DEFAULT_MAX = 5; + // The star rating can never be higher than RATING_STYLE_STAR_DEFAULT_MAX - it is capped in RatingService.rateItem, RatingService.rateItems + public static final int RATING_STYLE_STAR_DEFAULT_MAX = 5; + public static final float RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT = 5f; public static final int RATING_STYLE_RANKING_DEFAULT_MAX = 5; public static final int RATING_RANK_ALL = -1; Index: lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java =================================================================== diff -u -r4972b394013bef3bc563652df80d9c2dbb04e238 -r7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778 --- lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision 4972b394013bef3bc563652df80d9c2dbb04e238) +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision 7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778) @@ -143,11 +143,19 @@ rating.setToolSessionId(toolSessionId); } + // LDEV-4590 Star Rating can never be more than 5 stars + if (ratingCriteria.isStarStyleRating() + && Float.compare(ratingFloat, RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT) > 0) { + ratingFloat = RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT; + } + rating.setRating(ratingFloat); ratingDAO.saveOrUpdate(rating); // to make available new changes be visible on a jsp page - return ratingDAO.getRatingAverageDTOByItem(ratingCriteriaId, toolSessionId, itemId); + ItemRatingCriteriaDTO averageDTO = ratingDAO.getRatingAverageDTOByItem(ratingCriteriaId, toolSessionId, itemId); + averageDTO.setUserRating(Float.toString(ratingFloat)); + return averageDTO; } @Override @@ -174,8 +182,16 @@ rating.setItemId(entry.getKey()); rating.setLearner(learner); rating.setRatingCriteria(ratingCriteria); - rating.setRating(entry.getValue()); rating.setToolSessionId(toolSessionId); + + // LDEV-4590 Star Rating can never be more than 5 stars + float rawRating = entry.getValue(); + if (ratingCriteria.isStarStyleRating() + && Float.compare(rawRating, RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT) > 0) { + rawRating = RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT; + } + rating.setRating(rawRating); + ratingDAO.saveOrUpdate(rating); numRatings++; } Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java =================================================================== diff -u -rd39b9df30d44b56c287b8a1d4409407e60692dc4 -r7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778 --- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision d39b9df30d44b56c287b8a1d4409407e60692dc4) +++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 7665ade66b927eb4b1fa6cb20ad55f3c1d7c2778) @@ -69,6 +69,7 @@ import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; +import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.rest.RestTags; import org.lamsfoundation.lams.rest.ToolRestManager; import org.lamsfoundation.lams.tool.ToolCompletionStatus; @@ -677,6 +678,11 @@ messageRating.setUser(imageGalleryUser); messageRating.setMessage(message); } + + // LDEV-4590 Star Rating can never be more than 5 stars + if ( Float.compare(rating, RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT) > 0) { + rating = RatingCriteria.RATING_STYLE_STAR_DEFAULT_MAX_AS_FLOAT; + } messageRating.setRating(rating); messageRatingDao.saveObject(messageRating); //to make available new changes be visible in jsp page