Index: lams_tool_preview/conf/language/lams/ApplicationResources.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/conf/language/lams/ApplicationResources.properties,v diff -u -r1.7.2.7 -r1.7.2.8 --- lams_tool_preview/conf/language/lams/ApplicationResources.properties 12 Oct 2016 20:48:42 -0000 1.7.2.7 +++ lams_tool_preview/conf/language/lams/ApplicationResources.properties 14 Oct 2016 03:43:01 -0000 1.7.2.8 @@ -128,4 +128,8 @@ label.learning.your.marks.shown.in.brackets=(Your marks shown in brackets after name) label.learning.average.rankings=Average Rankings: label.learning.average.marks=Average Marks: -label.learning.your.justification=Your justification: \ No newline at end of file +label.learning.your.justification=Your justification: +label.monitoring.number.learners=Number of learners +label.monitoring.number.learners.finished=Number of learners finished +label.monitoring.view=View {0} +label.close=Close \ No newline at end of file Index: lams_tool_preview/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/conf/language/lams/ApplicationResources_en_AU.properties,v diff -u -r1.7.2.3 -r1.7.2.4 --- lams_tool_preview/conf/language/lams/ApplicationResources_en_AU.properties 12 Oct 2016 20:48:42 -0000 1.7.2.3 +++ lams_tool_preview/conf/language/lams/ApplicationResources_en_AU.properties 14 Oct 2016 03:43:01 -0000 1.7.2.4 @@ -129,4 +129,8 @@ label.learning.your.marks.shown.in.brackets=(Your marks shown in brackets after name) label.learning.average.rankings=Average Rankings: label.learning.average.marks=Average Marks: -label.learning.your.justification=Your justification: \ No newline at end of file +label.learning.your.justification=Your justification: +label.monitoring.number.learners=Number of learners +label.monitoring.number.learners.finished=Number of learners finished +label.monitoring.view=View {0} +label.close=Close \ No newline at end of file Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/PeerreviewDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/PeerreviewDAO.java,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/PeerreviewDAO.java 11 May 2016 07:37:53 -0000 1.1.2.2 +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/PeerreviewDAO.java 14 Oct 2016 03:42:40 -0000 1.1.2.3 @@ -23,6 +23,9 @@ package org.lamsfoundation.lams.tool.peerreview.dao; +import java.util.List; + +import org.lamsfoundation.lams.tool.peerreview.dto.PeerreviewStatisticsDTO; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; public interface PeerreviewDAO extends DAO { @@ -33,4 +36,5 @@ void delete(Peerreview peerreview); + List getStatistics(Long toolContentId); } Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/hibernate/PeerreviewDAOHibernate.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/hibernate/PeerreviewDAOHibernate.java,v diff -u -r1.1.2.3 -r1.1.2.4 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/hibernate/PeerreviewDAOHibernate.java 11 May 2016 07:37:53 -0000 1.1.2.3 +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dao/hibernate/PeerreviewDAOHibernate.java 14 Oct 2016 03:42:40 -0000 1.1.2.4 @@ -25,8 +25,10 @@ import java.util.List; +import org.hibernate.transform.Transformers; import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; import org.lamsfoundation.lams.tool.peerreview.dao.PeerreviewDAO; +import org.lamsfoundation.lams.tool.peerreview.dto.PeerreviewStatisticsDTO; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; /** @@ -38,6 +40,13 @@ public class PeerreviewDAOHibernate extends LAMSBaseDAO implements PeerreviewDAO { private static final String GET_RESOURCE_BY_CONTENTID = "from " + Peerreview.class.getName() + " as r where r.contentId=?"; + + private static final String GET_STATS = "SELECT s.session_id as \"sessionId\", s.session_name as \"sessionName\", " + + " count(u.uid) as \"numLearnersInSession\", sum(u.session_finished) as \"numLearnersComplete\" " + + " FROM tl_laprev11_session s " + + " JOIN tl_laprev11_peerreview p ON p.content_id = :toolContentId AND s.peerreview_uid = p.uid " + + " LEFT JOIN tl_laprev11_user u ON u.session_uid = s.uid " + + " GROUP BY session_id"; @Override public Peerreview getByContentId(Long contentId) { @@ -59,4 +68,13 @@ delete(peerreview); } + @SuppressWarnings("unchecked") + @Override + public List getStatistics(Long toolContentId) { + return getSession().createSQLQuery(GET_STATS) + .setLong("toolContentId", toolContentId) + .setResultTransformer( Transformers.aliasToBean( PeerreviewStatisticsDTO.class ) ) + .list(); + + } } Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/dto/PeerreviewStatisticsDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java,v diff -u -r1.4.2.4 -r1.4.2.5 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java 12 Oct 2016 20:48:21 -0000 1.4.2.4 +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/IPeerreviewService.java 14 Oct 2016 03:42:40 -0000 1.4.2.5 @@ -35,6 +35,7 @@ import org.lamsfoundation.lams.rating.dto.StyledCriteriaRatingDTO; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.tool.peerreview.dto.GroupSummary; +import org.lamsfoundation.lams.tool.peerreview.dto.PeerreviewStatisticsDTO; import org.lamsfoundation.lams.tool.peerreview.dto.ReflectDTO; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewSession; @@ -47,12 +48,6 @@ */ public interface IPeerreviewService extends ToolRatingManager { - // TODO remove! - int rateItems(RatingCriteria ratingCriteria, Integer userId, Map newRatings); - void commentItem(RatingCriteria ratingCriteria, Integer userId, Long itemId, String comment); - RatingCriteria getCriteriaByCriteriaId(Long ratingCriteriaId); - - /** * Get Peerreview by toolContentID. * @@ -194,7 +189,7 @@ * @param contentId * @return */ - List getReflectList(Long contentId); + List getReflectList(Long contentId, Long sessionId); /** * Get user by UID @@ -230,15 +225,15 @@ List getCriteriasByToolContentId(Long toolContentId); - /** - * Returns item DTO with all corresponding ratings and comments. Doesn't contain average and total amount of rates. - * - * @param contentId - * @param itemId - * @return - */ - ItemRatingDTO getRatingCriteriaDtoWithActualRatings(Long contentId, Long itemId); + /** Save the ratings for ranking and hedging. */ + int rateItems(RatingCriteria ratingCriteria, Integer userId, Map newRatings); + /** Save a comment made on a comment only page. */ + void commentItem(RatingCriteria ratingCriteria, Integer userId, Long itemId, String comment); + + /** Get the details for a single criteria */ + RatingCriteria getCriteriaByCriteriaId(Long ratingCriteriaId); + /** * It's a modification of org.lamsfoundation.lams.rating.ToolRatingManager.getRatingCriteriaDtos(Long contentId, * Collection itemIds, boolean isCommentsByOtherUsersRequired, Long userId) method, added additional parameter @@ -278,4 +273,7 @@ Integer page, Integer size, int sorting); String getLocalisedMessage(String key, Object[] args); + + /** Get the monitoring statistics */ + List getStatistics(Long toolContentId); } Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java,v diff -u -r1.7.2.11 -r1.7.2.12 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java 13 Oct 2016 02:08:27 -0000 1.7.2.11 +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/service/PeerreviewServiceImpl.java 14 Oct 2016 03:42:40 -0000 1.7.2.12 @@ -71,6 +71,7 @@ import org.lamsfoundation.lams.tool.peerreview.dao.PeerreviewSessionDAO; import org.lamsfoundation.lams.tool.peerreview.dao.PeerreviewUserDAO; import org.lamsfoundation.lams.tool.peerreview.dto.GroupSummary; +import org.lamsfoundation.lams.tool.peerreview.dto.PeerreviewStatisticsDTO; import org.lamsfoundation.lams.tool.peerreview.dto.ReflectDTO; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewSession; @@ -240,27 +241,22 @@ } @Override - public List getReflectList(Long contentId) { + public List getReflectList(Long contentId, Long sessionId) { + List reflections = new LinkedList(); - List sessionList = peerreviewSessionDao.getByContentId(contentId); - for (PeerreviewSession session : sessionList) { - Long sessionId = session.getSessionId(); - // get all users in this session - List users = peerreviewUserDao.getBySessionID(sessionId); - for (PeerreviewUser user : users) { + List users = peerreviewUserDao.getBySessionID(sessionId); + for (PeerreviewUser user : users) { - NotebookEntry entry = getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, - PeerreviewConstants.TOOL_SIGNATURE, user.getUserId().intValue()); - if (entry != null) { - ReflectDTO ref = new ReflectDTO(user); - ref.setReflect(entry.getEntry()); - Date postedDate = (entry.getLastModified() != null) ? entry.getLastModified() - : entry.getCreateDate(); - ref.setDate(postedDate); - reflections.add(ref); - } - + NotebookEntry entry = getEntry(sessionId, CoreNotebookConstants.NOTEBOOK_TOOL, + PeerreviewConstants.TOOL_SIGNATURE, user.getUserId().intValue()); + if (entry != null) { + ReflectDTO ref = new ReflectDTO(user); + ref.setReflect(entry.getEntry()); + Date postedDate = (entry.getLastModified() != null) ? entry.getLastModified() + : entry.getCreateDate(); + ref.setDate(postedDate); + reflections.add(ref); } } @@ -439,6 +435,20 @@ return rawData; } + @Override + public boolean isGroupedActivity(long toolContentID) { + return toolService.isGroupedActivity(toolContentID); + } + + @Override + public String getLocalisedMessage(String key, Object[] args) { + return messageService.getMessage(key, args); + } + + @Override + public List getStatistics(Long toolContentId) { + return peerreviewDao.getStatistics(toolContentId); + } // ***************************************************************************** // private methods @@ -467,16 +477,6 @@ return contentId; } - @Override - public boolean isGroupedActivity(long toolContentID) { - return toolService.isGroupedActivity(toolContentID); - } - - @Override - public String getLocalisedMessage(String key, Object[] args) { - return messageService.getMessage(key, args); - } - // ******************************************************************************* // ToolContentManager, ToolSessionManager methods // ******************************************************************************* @@ -743,11 +743,6 @@ } @Override - public ItemRatingDTO getRatingCriteriaDtoWithActualRatings(Long contentId, Long itemId) { - return ratingService.getRatingCriteriaDtoWithActualRatings(contentId, itemId); - } - - @Override public List getRatingCriteriaDtos(Long contentId, Collection itemIds, boolean isCommentsByOtherUsersRequired, Long userId, boolean isCountUsersRatedEachItem) { List itemRatingDTOs = getRatingCriteriaDtos(contentId, itemIds, isCommentsByOtherUsersRequired, Index: lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/MonitoringAction.java,v diff -u -r1.2.2.3 -r1.2.2.4 --- lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/MonitoringAction.java 12 Oct 2016 20:48:21 -0000 1.2.2.3 +++ lams_tool_preview/src/java/org/lamsfoundation/lams/tool/peerreview/web/action/MonitoringAction.java 14 Oct 2016 03:42:40 -0000 1.2.2.4 @@ -51,6 +51,7 @@ import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.tool.peerreview.PeerreviewConstants; import org.lamsfoundation.lams.tool.peerreview.dto.GroupSummary; +import org.lamsfoundation.lams.tool.peerreview.dto.PeerreviewStatisticsDTO; import org.lamsfoundation.lams.tool.peerreview.dto.ReflectDTO; import org.lamsfoundation.lams.tool.peerreview.model.Peerreview; import org.lamsfoundation.lams.tool.peerreview.model.PeerreviewUser; @@ -83,6 +84,13 @@ if (param.equals("getSubgridData")) { return getSubgridData(mapping, form, request, response); } + // refresh statistic page by Ajax call. + if (param.equals("statistic")) { + return statistic(mapping, form, request, response); + } + if (param.equals("reflections")) { + return reflections(mapping, form, request, response); + } return mapping.findForward(PeerreviewConstants.ERROR); } @@ -103,12 +111,6 @@ Peerreview peerreview = service.getPeerreviewByContentId(contentId); - // Create reflectList if reflection is enabled. - if (peerreview.isReflectOnActivity()) { - List relectList = service.getReflectList(contentId); - sessionMap.put(PeerreviewConstants.ATTR_REFLECT_LIST, relectList); - } - // user name map List sessionUsers = service.getUsersByContent(contentId); HashMap userNameMap = new HashMap(); @@ -129,15 +131,6 @@ return mapping.findForward(PeerreviewConstants.SUCCESS); } -// private void setupRankHedgeData(HttpServletRequest request, Long contentId, IPeerreviewService service, RatingCriteria criteria) { -// int sorting = criteria.isHedgeStyleRating() ? PeerreviewConstants.SORT_BY_AVERAGE_RESULT_DESC : (criteria -// .isRankingStyleRating() ? PeerreviewConstants.SORT_BY_AVERAGE_RESULT_ASC -// : PeerreviewConstants.SORT_BY_USERNAME_ASC); -// StyledCriteriaRatingDTO dto = service.getUsersRatingsCommentsByCriteriaIdDTO(contentId, criteria, -1L, -// false, sorting, true, true); -// request.setAttribute("criteriaRatings", dto); -// } - private ActionForward criteria(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { @@ -343,6 +336,39 @@ return null; } + private ActionForward statistic(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + IPeerreviewService service = getPeerreviewService(); + String sessionMapID = request.getParameter(PeerreviewConstants.ATTR_SESSION_MAP_ID); + Long toolContentId = WebUtil.readLongParam(request, PeerreviewConstants.ATTR_TOOL_CONTENT_ID); + request.setAttribute("summaryList", service.getStatistics(toolContentId)); + request.setAttribute(PeerreviewConstants.ATTR_SESSION_MAP_ID, sessionMapID); + return mapping.findForward(PeerreviewConstants.SUCCESS); + } + + private ActionForward reflections(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + String sessionMapID = request.getParameter(PeerreviewConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession() + .getAttribute(sessionMapID); + request.setAttribute(PeerreviewConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + + Long contentId = (Long) sessionMap.get(PeerreviewConstants.ATTR_TOOL_CONTENT_ID); + Long toolSessionId = WebUtil.readLongParam(request, "toolSessionId"); + + IPeerreviewService service = getPeerreviewService(); + + Peerreview peerreview = service.getPeerreviewByContentId(contentId); + List relectList = service.getReflectList(contentId, toolSessionId); + request.setAttribute(PeerreviewConstants.ATTR_REFLECT_LIST, relectList); + request.setAttribute("toolSessionId", toolSessionId); + + return mapping.findForward(PeerreviewConstants.SUCCESS); + } + + + // ************************************************************************************* // Private method // ************************************************************************************* Index: lams_tool_preview/web/WEB-INF/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/WEB-INF/Attic/struts-config.xml,v diff -u -r1.1.2.3 -r1.1.2.4 --- lams_tool_preview/web/WEB-INF/struts-config.xml 12 Oct 2016 20:48:42 -0000 1.1.2.3 +++ lams_tool_preview/web/WEB-INF/struts-config.xml 14 Oct 2016 03:43:01 -0000 1.1.2.4 @@ -179,6 +179,16 @@ type="org.lamsfoundation.lams.tool.peerreview.web.action.MonitoringAction" parameter="getSubgridData" > + + + + + + Index: lams_tool_preview/web/pages/monitoring/criteria.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/pages/monitoring/Attic/criteria.jsp,v diff -u -r1.1.2.1 -r1.1.2.2 --- lams_tool_preview/web/pages/monitoring/criteria.jsp 12 Oct 2016 20:48:42 -0000 1.1.2.1 +++ lams_tool_preview/web/pages/monitoring/criteria.jsp 14 Oct 2016 03:43:01 -0000 1.1.2.2 @@ -61,7 +61,7 @@ <%@ include file="criteriapart.jsp" %> - Close + Index: lams_tool_preview/web/pages/monitoring/monitoring.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/pages/monitoring/monitoring.jsp,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_tool_preview/web/pages/monitoring/monitoring.jsp 17 May 2016 04:37:37 -0000 1.1.2.2 +++ lams_tool_preview/web/pages/monitoring/monitoring.jsp 14 Oct 2016 03:43:01 -0000 1.1.2.3 @@ -1,9 +1,10 @@ - <%@ include file="/common/taglibs.jsp"%> <%@ page import="org.lamsfoundation.lams.tool.peerreview.PeerreviewConstants"%> + + <%@ include file="/common/tabbedheader.jsp" %> @@ -20,14 +21,28 @@ } function doSelectTab(tabId) { - // end optional tab controller stuff + if ( tabId == 3) { + doStatistic(); + } selectTab(tabId); } - function viewItem(itemUid){ - var myUrl = "?mode=teacher&itemUid=" + itemUid + "&sessionMapID=${sessionMapID}"; - launchPopup(myUrl,"MonitoringReview"); - } + function doStatistic(){ + var url = ""; + $("#statisticArea_Busy").show(); + $.ajaxSetup({ cache: true }); + $("#statisticArea").load( + url, + { + toolContentID: ${sessionMap.toolContentID}, + reqID: (new Date()).getTime() + }, + function() { + $("#statisticArea_Busy").hide(); + } + ); + + } @@ -37,15 +52,15 @@ - <%-- --%> + - <%-- --%> + Index: lams_tool_preview/web/pages/monitoring/reflections.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/pages/monitoring/reflections.jsp,v diff -u -r1.1.2.1 -r1.1.2.2 --- lams_tool_preview/web/pages/monitoring/reflections.jsp 17 May 2016 04:37:37 -0000 1.1.2.1 +++ lams_tool_preview/web/pages/monitoring/reflections.jsp 14 Oct 2016 03:43:01 -0000 1.1.2.2 @@ -1,29 +1,55 @@ <%@ include file="/common/taglibs.jsp"%> -
-
- - - -
- -
+ + + - + + + <fmt:message key="label.learning.title" /> + + <%@ include file="/common/header.jsp"%> + + + + + + + + + ${groupSummary.sessionName} + + + + + + + + + +
- - - - - + + + + + + +
- - -
- -
+ - +
+ +
- + + + + + -
+ + + + + \ No newline at end of file Index: lams_tool_preview/web/pages/monitoring/statistic.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/pages/monitoring/statistic.jsp,v diff -u -r1.1.2.1 -r1.1.2.2 --- lams_tool_preview/web/pages/monitoring/statistic.jsp 17 May 2016 04:37:37 -0000 1.1.2.1 +++ lams_tool_preview/web/pages/monitoring/statistic.jsp 14 Oct 2016 03:43:01 -0000 1.1.2.2 @@ -1,54 +1,4 @@ <%@ include file="/common/taglibs.jsp"%> - - - - - - - - - - - - - - - - - -
- - - - -
-
- - : - -
- -
- - - - - - - -
- Session Id - - ${groupSummary.sessionId} -
- - -
-
-
-
- - -
-
- \ No newline at end of file +
+ <%@ include file="statisticpart.jsp"%> +
\ No newline at end of file Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_preview/web/pages/monitoring/statisticpart.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_preview/web/pages/monitoring/summary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_preview/web/pages/monitoring/summary.jsp,v diff -u -r1.5.2.3 -r1.5.2.4 --- lams_tool_preview/web/pages/monitoring/summary.jsp 12 Oct 2016 20:48:42 -0000 1.5.2.3 +++ lams_tool_preview/web/pages/monitoring/summary.jsp 14 Oct 2016 03:43:01 -0000 1.5.2.4 @@ -81,7 +81,7 @@ - +

${criteria.title}

@@ -93,8 +93,13 @@ criteria.do?sessionMapID=${sessionMapID}&toolSessionId=${groupSummary.sessionId}&criteriaId=${criteria.ratingCriteriaId} - View ${criteria.title} + + ${criteria.title} + + reflections.do?sessionMapID=${sessionMapID}&toolSessionId=${groupSummary.sessionId}&toolContentID=${sessionMap.toolContentID} + +
 
@@ -103,14 +108,10 @@
- ${ !sessionMap.isGroupedActivity || ! status.last || sessionMap.peerreview.reflectOnActivity ? '
 
' : ''} + ${ !sessionMap.isGroupedActivity || ! status.last ? '
 
' : ''} - - <%@ include file="reflections.jsp"%> - -