Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -ra3e9b9262bb92eefb150e4b2d482f9c73ae77dfd -rab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCommentDAO.java =================================================================== diff -u -r42cd8d7da9fa6615dbd82d376984000024b4b0fe -rab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55 --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCommentDAO.java (.../IRatingCommentDAO.java) (revision 42cd8d7da9fa6615dbd82d376984000024b4b0fe) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/IRatingCommentDAO.java (.../IRatingCommentDAO.java) (revision ab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55) @@ -68,5 +68,7 @@ List getRelatedCommentByCriteriaAndUser(Long ratingCriteriaId, Integer userId); RatingComment getComment(Long ratingCriteriaId, Integer userId, Long itemId); + + List getCommentsByContentAndUser(Long contentId, Integer userId); } Index: lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java =================================================================== diff -u -r42e6c9c7220f8baf3b245d73b57aca9be08191ea -rab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55 --- lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java (.../RatingCommentDAO.java) (revision 42e6c9c7220f8baf3b245d73b57aca9be08191ea) +++ lams_common/src/java/org/lamsfoundation/lams/rating/dao/hibernate/RatingCommentDAO.java (.../RatingCommentDAO.java) (revision ab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55) @@ -55,11 +55,6 @@ private static final String FIND_RELATED_COMMENT_BY_CRITERIA_AND_USER = "SELECT r.itemId, r.learner.userId, r.comment FROM " + RatingComment.class.getName() + " AS r where r.ratingCriteria.ratingCriteriaId=:ratingCriteriaId AND r.learner.userId=:userId"; -// private static final String COUNT_COMMENTS_BY_ITEM_AND_USER = "SELECT COUNT(r) FROM " -// + RatingComment.class.getName() -// + " AS r " -// + " WHERE r.ratingCriteria.toolContentId = ? AND r.ratingCriteria.commentsEnabled IS TRUE AND r.itemId =? AND r.learner.userId =?"; - @Override public List getCommentsByCriteriaAndItem(Long ratingCriteriaId, Long itemId) { List results = (List) (doFind(FIND_COMMENTS_BY_CRITERIA_AND_ITEM, @@ -145,4 +140,12 @@ return null; } } + + @Override + public List getCommentsByContentAndUser(Long contentId, Integer userId) { + final String FIND_RATINGS_BY_USER = "FROM " + RatingComment.class.getName() + + " AS r where r.ratingCriteria.toolContentId=? AND r.learner.userId=?"; + + return (List) doFind(FIND_RATINGS_BY_USER, new Object[] { contentId, userId }); + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java =================================================================== diff -u -re1fac48f7bb8bf00cc7e591c0a19ad767172eda0 -rab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55 --- lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java (.../IRatingService.java) (revision e1fac48f7bb8bf00cc7e591c0a19ad767172eda0) +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/IRatingService.java (.../IRatingService.java) (revision ab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55) @@ -161,6 +161,15 @@ int getCountItemsRatedByUserByCriteria(final Long criteriaId, final Integer userId); /** + * Removes all ratings and comments left by the specified user. + * + * @param contentId + * @param userId + * @return + */ + void removeUserCommitsByContent(final Long contentId, final Integer userId); + + /** * Count how many users rated and commented each item. * * @param contentId Index: lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java =================================================================== diff -u -r8a760d56403394acfc11cf4ba9fe6a3fccfc83b9 -rab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55 --- lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision 8a760d56403394acfc11cf4ba9fe6a3fccfc83b9) +++ lams_common/src/java/org/lamsfoundation/lams/rating/service/RatingService.java (.../RatingService.java) (revision ab0ebee2c0b38fee4f7b362d6893f9d81bc3ba55) @@ -95,6 +95,19 @@ public int getCountItemsRatedByUserByCriteria(final Long criteriaId, final Integer userId) { return ratingDAO.getCountItemsRatedByUserByCriteria(criteriaId, userId); } + + @Override + public void removeUserCommitsByContent(final Long contentId, final Integer userId) { + List ratings = ratingDAO.getRatingsByUser(contentId, userId); + for (Rating rating : ratings) { + ratingDAO.delete(rating); + } + + List comments = ratingCommentDAO.getCommentsByContentAndUser(contentId, userId); + for (RatingComment comment : comments) { + ratingDAO.delete(comment); + } + } @Override public Map countUsersRatedEachItem(final Long contentId, final Collection itemIds, @@ -625,7 +638,7 @@ userRow.put("comment", row[2] == null ? "" : (String) row[2]); userRow.put("itemDescription", row[numColumns - 1] == null ? "" : (String) row[numColumns - 1]); if ( ! isComment ) { - userRow.put("userRating", row[3] == null ? "" : numberFormat.format((Float) row[3])); + userRow.put("userRating", row[3] == null ? "" : numberFormat.format((Double) row[3])); userRow.put("averageRating", row[4] == null ? "" : numberFormat.format((Double) row[4])); userRow.put("numberOfVotes", row[5] == null ? "" : numberFormat.format((BigInteger) row[5])); } else {