Index: lams_tool_lamc/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/conf/language/lams/ApplicationResources_en_AU.properties,v diff -u -r1.51 -r1.52 --- lams_tool_lamc/conf/language/lams/ApplicationResources_en_AU.properties 11 May 2016 07:53:12 -0000 1.51 +++ lams_tool_lamc/conf/language/lams/ApplicationResources_en_AU.properties 14 Jun 2016 13:23:23 -0000 1.52 @@ -287,6 +287,8 @@ label.info.use.select.leader.outputs =Group leader's option is enabled label.monitoring.group.leader =Group leader label.authoring.export.qti =Export IMS QTI +label.tool.output =Tool Output +label.tool.output.has.been.changed =Tool Output has been changed +label.operation.failed =Operation failed. - #======= End labels: Exported 281 labels for en AU ===== Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java,v diff -u -r1.28 -r1.29 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java 11 May 2016 07:53:12 -0000 1.28 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUsrAttemptDAO.java 14 Jun 2016 13:23:23 -0000 1.29 @@ -24,6 +24,7 @@ import java.util.List; +import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; /** @@ -101,5 +102,13 @@ int getUserTotalMark(final Long userUid); McUsrAttempt getUserAttemptByUid(Long uid); + + /** + * Returns all existing total marks for users belonging to tool content. + * + * @param toolContentId + * @return + */ + List getLearnerMarksByContentId(Long toolContentId); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java,v diff -u -r1.33 -r1.34 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java 11 May 2016 07:53:13 -0000 1.33 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUsrAttemptDAO.java 14 Jun 2016 13:23:23 -0000 1.34 @@ -22,10 +22,13 @@ package org.lamsfoundation.lams.tool.mc.dao.hibernate; +import java.util.ArrayList; import java.util.List; import org.hibernate.FlushMode; import org.lamsfoundation.lams.tool.mc.dao.IMcUsrAttemptDAO; +import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; +import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr; import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @@ -128,5 +131,32 @@ } return ((Number) list.get(0)).intValue(); } + + @Override + public List getLearnerMarksByContentId(Long toolContentId) { + + final String FIND_MARKS_FOR_CONTENT_ID = "SELECT user.queUsrId, user.lastAttemptTotalMark FROM " + + McQueUsr.class.getName() + + " user WHERE user.mcSession.mcContent.mcContentId = ? AND user.responseFinalised = true"; + List list = getHibernateTemplate().find(FIND_MARKS_FOR_CONTENT_ID, new Object[] { toolContentId }); + + List toolOutputDtos = new ArrayList(); + if (list != null && list.size() > 0) { + for (Object[] element : list) { + + Long userId = ((Number) element[0]).longValue(); + Integer grade = (Integer) element[1]; + + ToolOutputDTO toolOutputDto = new ToolOutputDTO(); + toolOutputDto.setUserId(userId.intValue()); + toolOutputDto.setMark(grade); + toolOutputDtos.add(toolOutputDto); + } + + } + + return toolOutputDtos; + } + } \ No newline at end of file Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ToolOutputDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ToolOutputDTO.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dto/ToolOutputDTO.java 14 Jun 2016 13:23:23 -0000 1.1 @@ -0,0 +1,29 @@ +package org.lamsfoundation.lams.tool.mc.dto; + +import org.lamsfoundation.lams.tool.ToolOutputValue; + +/** + * An output for a tool. + */ +public class ToolOutputDTO { + + private Integer userId; + private Integer mark; + + public Integer getMark() { + return mark; + } + + public void setMark(Integer mark) { + this.mark = mark; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } +} + Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java,v diff -u -r1.84 -r1.85 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 14 Jun 2016 07:11:17 -0000 1.84 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 14 Jun 2016 13:23:23 -0000 1.85 @@ -38,6 +38,7 @@ import org.lamsfoundation.lams.tool.mc.McSessionMarkDTO; import org.lamsfoundation.lams.tool.mc.McUserMarkDTO; import org.lamsfoundation.lams.tool.mc.ReflectionDTO; +import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; @@ -131,6 +132,8 @@ void updateMcOptionsContent(McOptsContent mcOptsContent) throws McApplicationException; McUsrAttempt getUserAttemptByQuestion(Long queUsrUid, Long mcQueContentId) throws McApplicationException; + + List getLearnerMarksByContentId(Long toolContentId); void copyToolContent(Long fromContentId, Long toContentId) throws ToolException; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java,v diff -u -r1.12 -r1.13 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java 14 Jun 2016 07:11:17 -0000 1.12 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/MCOutputFactory.java 14 Jun 2016 13:23:23 -0000 1.13 @@ -23,15 +23,18 @@ package org.lamsfoundation.lams.tool.mc.service; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import org.lamsfoundation.lams.tool.OutputFactory; import org.lamsfoundation.lams.tool.ToolOutput; import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.mc.McAppConstants; +import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; @@ -107,7 +110,54 @@ } return null; } + + public List getToolOutputs(String name, IMcService assessmentService, Long toolContentId) { + if ((name != null) && (toolContentId != null)) { + if (name.equals(McAppConstants.OUTPUT_NAME_LEARNER_MARK)) { + List toolOutputDtos = assessmentService.getLearnerMarksByContentId(toolContentId); + + //convert toolOutputDtos to toolOutputs + List toolOutputs = new ArrayList(); + for (ToolOutputDTO toolOutputDto : toolOutputDtos) { + float totalMark = toolOutputDto.getMark() == null ? 0 : toolOutputDto.getMark().floatValue(); + + ToolOutput toolOutput = new ToolOutput(McAppConstants.OUTPUT_NAME_LEARNER_MARK, + getI18NText(McAppConstants.OUTPUT_NAME_LEARNER_MARK, true), totalMark); + toolOutput.setUserId(toolOutputDto.getUserId().intValue()); + toolOutputs.add(toolOutput); + } + + return toolOutputs; + + } else if (name.equals(McAppConstants.OUTPUT_NAME_LEARNER_ALL_CORRECT)) { + List toolOutputDtos = assessmentService.getLearnerMarksByContentId(toolContentId); + + //calculate max possible total mark + int maxMark = 0; + McContent mcContent = assessmentService.getMcContent(toolContentId); + for (McQueContent question : (Set)mcContent.getMcQueContents()) { + maxMark += question.getMark(); + } + + //convert toolOutputDtos to toolOutputs + List toolOutputs = new ArrayList(); + for (ToolOutputDTO toolOutputDto : toolOutputDtos) { + float totalMark = toolOutputDto.getMark() == null ? 0 : toolOutputDto.getMark().floatValue(); + boolean isAllQuestionAnswersCorrect = totalMark == maxMark; + + ToolOutput toolOutput = new ToolOutput(McAppConstants.OUTPUT_NAME_LEARNER_ALL_CORRECT, + getI18NText(McAppConstants.OUTPUT_NAME_LEARNER_ALL_CORRECT, true), isAllQuestionAnswersCorrect); + toolOutput.setUserId(toolOutputDto.getUserId().intValue()); + toolOutputs.add(toolOutput); + } + + return toolOutputs; + } + } + return null; + } + /** * Get the mark for a specific user. This gets the mark associated with the last attempt. Will always return a * ToolOutput object. Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java,v diff -u -r1.142 -r1.143 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 13 Jun 2016 14:52:18 -0000 1.142 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 14 Jun 2016 13:23:23 -0000 1.143 @@ -96,6 +96,7 @@ import org.lamsfoundation.lams.tool.mc.dao.IMcSessionDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO; import org.lamsfoundation.lams.tool.mc.dao.IMcUsrAttemptDAO; +import org.lamsfoundation.lams.tool.mc.dto.ToolOutputDTO; import org.lamsfoundation.lams.tool.mc.pojos.McContent; import org.lamsfoundation.lams.tool.mc.pojos.McOptsContent; import org.lamsfoundation.lams.tool.mc.pojos.McQueContent; @@ -679,6 +680,11 @@ e); } } + + @Override + public List getLearnerMarksByContentId(Long toolContentId) { + return mcUsrAttemptDAO.getLearnerMarksByContentId(toolContentId); + } @Override public List getQuestionsByContentUid(final Long contentUid) throws McApplicationException { @@ -1615,7 +1621,7 @@ @Override public List getToolOutputs(String name, Long toolContentId) { - return new ArrayList(); + return mcOutputFactory.getToolOutputs(name, this, toolContentId); } @Override Index: lams_tool_lamc/web/monitoring/Stats.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/monitoring/Stats.jsp,v diff -u -r1.25 -r1.26 --- lams_tool_lamc/web/monitoring/Stats.jsp 9 Sep 2014 16:42:12 -0000 1.25 +++ lams_tool_lamc/web/monitoring/Stats.jsp 14 Jun 2016 13:23:23 -0000 1.26 @@ -1,8 +1,36 @@ <%@ include file="/common/taglibs.jsp"%> - + + -
@@ -21,4 +49,29 @@
\ No newline at end of file + + +

+ + + + + +

+
+ +