Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java =================================================================== diff -u -rf13b8a48b9a1cfaee56a654ba751a9736616b726 -reb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java (.../IPeerreviewService.java) (revision f13b8a48b9a1cfaee56a654ba751a9736616b726) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java (.../IPeerreviewService.java) (revision eb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12) @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewSession; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewUser; +import org.lamsfoundation.lams.tool.peerreview.util.EmailAnalysisBuilder.LearnerData; import org.lamsfoundation.lams.tool.service.ICommonToolService; import org.lamsfoundation.lams.util.excel.ExcelSheet; @@ -304,9 +305,11 @@ */ List getPagedUsers(Long toolSessionId, Integer page, Integer size, int sorting, String searchString); + Map getLearnerData(Long toolContentId, Long sessionId); + /** Generate and return the email that would be sent to a learner. Used to preview the email */ String generateEmailReportToUser(Long toolContentId, Long sessionId, Long userId); - + /** Send an email with the user's results to each user in the session */ int emailReportToSessionUsers(Long toolContentId, Long sessionId); Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java =================================================================== diff -u -rbc7b7ad81b148bea93d5c0c734d2c13e9ffdb11e -reb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision bc7b7ad81b148bea93d5c0c734d2c13e9ffdb11e) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java (.../PeerreviewServiceImpl.java) (revision eb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12) @@ -74,6 +74,7 @@ import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewSession; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewUser; import org.lamsfoundation.lams.tool.peerreview.util.EmailAnalysisBuilder; +import org.lamsfoundation.lams.tool.peerreview.util.EmailAnalysisBuilder.LearnerData; import org.lamsfoundation.lams.tool.peerreview.util.SpreadsheetBuilder; import org.lamsfoundation.lams.tool.service.ILamsToolService; import org.lamsfoundation.lams.usermanagement.User; @@ -272,7 +273,7 @@ @Override public PeerreviewUser getUser(Long uid) { - return (PeerreviewUser) peerreviewUserDao.find(PeerreviewUser.class, uid); + return peerreviewUserDao.find(PeerreviewUser.class, uid); } @Override @@ -464,6 +465,13 @@ return getLocalisedMessage("event.sent.results.subject", new Object[] { peerreview.getTitle() }); } + public Map getLearnerData(Long toolContentId, Long sessionId) { + PeerreviewSession session = peerreviewSessionDao.getSessionBySessionId(sessionId); + Peerreview peerreview = getPeerreviewByContentId(toolContentId); + return new EmailAnalysisBuilder(peerreview, session, ratingService, peerreviewSessionDao, peerreviewUserDao, + this, messageService).generateTeamData(); + } + @Override public String generateEmailReportToUser(Long toolContentId, Long sessionId, Long userId) { PeerreviewSession session = peerreviewSessionDao.getSessionBySessionId(sessionId); @@ -1028,4 +1036,5 @@ saveOrUpdatePeerreview(peerreview); } + } Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/util/EmailAnalysisBuilder.java =================================================================== diff -u -r3263b73b953717202995c4298b6abea5ddcedfe5 -reb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/util/EmailAnalysisBuilder.java (.../EmailAnalysisBuilder.java) (revision 3263b73b953717202995c4298b6abea5ddcedfe5) +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/util/EmailAnalysisBuilder.java (.../EmailAnalysisBuilder.java) (revision eb224b1b9cb0c9ec32783ba1a98ecfbdf5ad7b12) @@ -134,9 +134,9 @@ public class LearnerData { public class SingleCriteriaData { - Double selfRating; - Double peerRatingExcSelf; - Double peerRatingIncSelf; + public Double selfRating; + public Double peerRatingExcSelf; + public Double peerRatingIncSelf; SingleCriteriaData(Double selfRating, Double peerRatingExcSelf, Double peerRatingIncSelf) { this.selfRating = selfRating; @@ -163,7 +163,7 @@ } // must not be called until data analysis calculations are done - needs averageOfAverages - protected Double getSPAFactor() { + public Double getSPAFactor() { if (spa == null) { spa = (averageOfAverages > 0 && individualCriteriaAverage != null) // round twice for consistency with Spreadsheet export @@ -173,7 +173,7 @@ return spa; } - protected Double getSAPAFactor() { + public Double getSAPAFactor() { if (sapa == null) { double sumSelfRatings = 0d; double sumPeerRatings = 0d; @@ -212,7 +212,7 @@ } /* Only needs to be called once for the session - works out all the basic data for the whole team */ - private void generateTeamData() { + public Map generateTeamData() { List users = peerreviewUserDao.getBySessionID(session.getSessionId()); for (PeerreviewUser user : users) { @@ -276,6 +276,7 @@ } averageOfAverages = averageOfAveragesCount > 0 ? averageOfAveragesSum / averageOfAveragesCount : 0D; + return learnerDataMap; } class SummingData {