Index: lams_tool_scratchie/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r9ad3683dd034fb1f5e76f9c1094893c97c159eea -r7e1ec952df67f307b1840179b78f2e762b5ffdcd --- lams_tool_scratchie/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 9ad3683dd034fb1f5e76f9c1094893c97c159eea) +++ lams_tool_scratchie/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7e1ec952df67f307b1840179b78f2e762b5ffdcd) @@ -52,7 +52,7 @@ monitor.summary.td.addNotebook =Add notebook monitor.summary.td.notebookInstructions =Notebook instructions label.authoring.up =Move up -label.monitoring.summary.select.student =Select a learner from the list to see his/her attempts/results +label.monitoring.summary.select.student =Select the highlighted leader from the list to see his/her attempts/results label.monitoring.summary.user.name =Name label.monitoring.summary.answer =Answer label.monitoring.summary.choice =choice Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -r7e1ec952df67f307b1840179b78f2e762b5ffdcd --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java (.../GroupSummary.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/dto/GroupSummary.java (.../GroupSummary.java) (revision 7e1ec952df67f307b1840179b78f2e762b5ffdcd) @@ -36,6 +36,7 @@ private int mark; private int totalAttempts; private String totalPercentage; + private Long leaderUid; private Collection users; private Collection itemDtos; @@ -99,6 +100,14 @@ this.totalPercentage = totalPercentage; } + public Long getLeaderUid() { + return leaderUid; + } + + public void setLeaderUid(Long leaderUid) { + this.leaderUid = leaderUid; + } + public Collection getUsers() { return users; } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== diff -u -r9ad3683dd034fb1f5e76f9c1094893c97c159eea -r7e1ec952df67f307b1840179b78f2e762b5ffdcd --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision 9ad3683dd034fb1f5e76f9c1094893c97c159eea) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision 7e1ec952df67f307b1840179b78f2e762b5ffdcd) @@ -288,7 +288,7 @@ * if true - return Summaries only for leader, all users in a group otherwise * @return */ - List getMonitoringSummary(Long contentId, boolean isIncludeOnlyLeaders); + List getMonitoringSummary(Long contentId, boolean addPortraits); List getQuestionSummary(Long contentId, Long itemUid); Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -r9ad3683dd034fb1f5e76f9c1094893c97c159eea -r7e1ec952df67f307b1840179b78f2e762b5ffdcd --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 9ad3683dd034fb1f5e76f9c1094893c97c159eea) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 7e1ec952df67f307b1840179b78f2e762b5ffdcd) @@ -680,7 +680,7 @@ * If isIncludeOnlyLeaders then include the portrait ids needed for monitoring. If false then it * is probably the export and that doesn't need portraits. */ - public List getMonitoringSummary(Long contentId, boolean isIncludeOnlyLeaders) { + public List getMonitoringSummary(Long contentId, boolean addPortraits) { List groupSummaryList = new ArrayList<>(); List sessions = scratchieSessionDao.getByContentId(contentId); @@ -698,14 +698,15 @@ for (ScratchieUser user : sessionUsers) { boolean isUserGroupLeader = session.isUserGroupLeader(user.getUid()); - // include only leaders in case isUserGroupLeader is ON, include all otherwise - if (isIncludeOnlyLeaders && isUserGroupLeader) { + if (isUserGroupLeader) { + groupSummary.setLeaderUid(user.getUid()); + } + + if (addPortraits) { User systemUser = (User) userManagementService.findById(User.class, user.getUserId().intValue()); user.setPortraitId(systemUser.getPortraitUuid()); - usersToShow.add(user); - } else if (!isIncludeOnlyLeaders) { - usersToShow.add(user); } + usersToShow.add(user); } groupSummary.setUsers(usersToShow); Index: lams_tool_scratchie/web/pages/monitoring/summary.jsp =================================================================== diff -u -rcfb443a16be73bd3444164048079acbeb19912fa -r7e1ec952df67f307b1840179b78f2e762b5ffdcd --- lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision cfb443a16be73bd3444164048079acbeb19912fa) +++ lams_tool_scratchie/web/pages/monitoring/summary.jsp (.../summary.jsp) (revision 7e1ec952df67f307b1840179b78f2e762b5ffdcd) @@ -55,20 +55,31 @@ "", "", "", - 'portraitId' + 'portraitId', + 'isLeader' ], colModel:[ {name:'id', index:'id', width:0, sorttype:"int", hidden: true}, {name:'userId', index:'userId', width:0, hidden: true}, {name:'sessionId', index:'sessionId', width:0, hidden: true}, - {name:'userName', index:'userName', width:570, formatter:userNameFormatter}, - {name:'totalAttempts', index:'totalAttempts', width:100, align:"right", sorttype:"int"}, - {name:'mark', index:'mark', width:100, align:"right", sorttype:"int", editable:true, editoptions: {size:4, maxlength: 4}}, + {name:'userName', index:'userName', width:570, formatter:userNameFormatter, cellattr: leaderRowFormatter}, + {name:'totalAttempts', index:'totalAttempts', width:100, align:"right", sortable: false, cellattr: leaderRowFormatter}, + {name:'mark', index:'mark', width:100, align:"right", sortable: false, editoptions: {size:4, maxlength: 4}, cellattr: leaderRowFormatter, + editable: function (options) { + var row = $(this).jqGrid("getLocalRow", options.rowid); + return row.isLeader == 'true'; + } + }, {name:'portraitId', index:'portraitId', width:0, hidden: true}, + {name:'isLeader', index:'isLeader', width:0, hidden: true}, ], ondblClickRow: function(rowid) { - var userId = jQuery("#list${summary.sessionId}").getCell(rowid, 'userId'); - var toolSessionId = jQuery("#list${summary.sessionId}").getCell(rowid, 'sessionId'); + var jqGrid = $("#list${summary.sessionId}"); + if (jqGrid.getCell(rowid, 'isLeader') != 'true') { + return; + } + var userId = jqGrid.getCell(rowid, 'userId'); + var toolSessionId = jqGrid.getCell(rowid, 'sessionId'); var userSummaryUrl = "?userID=" + userId + "&toolSessionID=" + toolSessionId + "&mode=teacher&reqId=" + (new Date()).getTime(); launchPopup(userSummaryUrl, "MonitoringReview"); @@ -103,12 +114,13 @@ userId:"${user.userId}", sessionId:"${user.session.sessionId}", userName:"${user.lastName}, ${user.firstName}", - totalAttempts:"${summary.totalAttempts}", - mark:"-${summary.mark}", - portraitId:"${user.portraitId}" + totalAttempts:"${summary.leaderUid eq user.uid ? summary.totalAttempts : ''}", + mark:"${summary.leaderUid eq user.uid ? (summary.totalAttempts == 0 ? '-' : summary.mark) : ''}", + portraitId:"${user.portraitId}", + isLeader : "${summary.leaderUid eq user.uid}" }); - + initializePortraitPopover(''); @@ -196,8 +208,14 @@ setTimeout(function(){ window.dispatchEvent(new Event('resize')); }, 300); function userNameFormatter (cellvalue, options, rowObject) { - return definePortraitPopover(rowObject.portraitId, rowObject.userId, rowObject.userName); - } + return definePortraitPopover(rowObject.portraitId, rowObject.userId, rowObject.userName); + } + + function leaderRowFormatter (rowID, val, rawObject, cm, rdata) { + if (rdata.isLeader == 'true') { + return 'class="info"'; + } + } $("#item-uid").change(function() { var itemUid = $(this).val();