Index: lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties,v diff -u -r1.3 -r1.4 --- lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties 27 Aug 2012 13:52:03 -0000 1.3 +++ lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties 29 Aug 2012 10:34:09 -0000 1.4 @@ -90,7 +90,7 @@ label.monitoring.summary.report.for =Report for {0} label.monitoring.summary.choose =Choose... label.monitoring.item.summary.group =Group: -output.desc.learner.number.of.attempts =Number of attempts made by user +output.desc.learner.mark =Total mark scored by user warning.msg.authoring.do.you.want.to.delete =Do you really want to delete this question? warning.msg.are.you.sure.you.want.to.finish =Are you sure you want to finish? label.authoring.add.blank.answer =Add Blank Answer Index: lams_tool_scratchie/db/sql/tool_insert.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/db/sql/tool_insert.sql,v diff -u -r1.1 -r1.2 --- lams_tool_scratchie/db/sql/tool_insert.sql 19 Jul 2012 19:20:07 -0000 1.1 +++ lams_tool_scratchie/db/sql/tool_insert.sql 29 Aug 2012 10:34:10 -0000 1.2 @@ -29,7 +29,8 @@ help_url, language_file, create_date_time, -modified_date_time +modified_date_time, +supports_outputs ) VALUES ( @@ -58,5 +59,6 @@ 'http://wiki.lamsfoundation.org/display/lamsdocs/lascrt11', 'org.lamsfoundation.lams.tool.scratchie.ApplicationResources', NOW(), -NOW() +NOW(), +1 ) Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java,v diff -u -r1.3 -r1.4 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java 27 Aug 2012 13:52:03 -0000 1.3 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java 29 Aug 2012 10:34:09 -0000 1.4 @@ -137,5 +137,5 @@ public static final String ATTR_USER_UID = "userUid"; - public static final String LEARNER_NUMBER_ATTEMPTS = "learner.number.of.attempts"; + public static final String LEARNER_MARK = "learner.mark"; } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java,v diff -u -r1.3 -r1.4 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 28 Aug 2012 15:22:19 -0000 1.3 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java 29 Aug 2012 10:34:09 -0000 1.4 @@ -172,7 +172,7 @@ void setAnswerAccess(Long scratchieItemUid, Long userId, Long sessionId); - int getNumberAttempts(Long userId, Long sessionId); + int getUserMark(Long sessionId, Long userId); /** * If success return next activity's url, otherwise return null. Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java,v diff -u -r1.1 -r1.2 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 19 Jul 2012 19:20:06 -0000 1.1 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 29 Aug 2012 10:34:09 -0000 1.2 @@ -42,15 +42,9 @@ public SortedMap getToolOutputDefinitions(Object toolContentObject, int definitionType) throws ToolException { TreeMap definitionMap = new TreeMap(); - switch (definitionType) { - case ToolOutputDefinition.DATA_OUTPUT_DEFINITION_TYPE_CONDITION: - break; - case ToolOutputDefinition.DATA_OUTPUT_DEFINITION_TYPE_DATA_FLOW: - ToolOutputDefinition definition = buildRangeDefinition(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, - new Long(0), null); - definitionMap.put(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, definition); - break; - } + ToolOutputDefinition definition = buildRangeDefinition(ScratchieConstants.LEARNER_MARK, new Long(0), null); + definitionMap.put(ScratchieConstants.LEARNER_MARK, definition); + return definitionMap; } @@ -64,10 +58,10 @@ TreeMap outputs = new TreeMap(); // tool output cache TreeMap baseOutputs = new TreeMap(); - if (names == null || names.contains(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS)) { + if (names == null || names.contains(ScratchieConstants.LEARNER_MARK)) { outputs.put( - ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, - getToolOutput(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, scratchieService, toolSessionId, + ScratchieConstants.LEARNER_MARK, + getToolOutput(ScratchieConstants.LEARNER_MARK, scratchieService, toolSessionId, learnerId)); } @@ -76,22 +70,22 @@ } public ToolOutput getToolOutput(String name, IScratchieService scratchieService, Long toolSessionId, Long learnerId) { - if (name.equals(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS)) { - return getNumberAttempts(scratchieService, toolSessionId, learnerId); + if (name.equals(ScratchieConstants.LEARNER_MARK)) { + return getUserMark(scratchieService, toolSessionId, learnerId); } return null; } /** - * Get the number of attempts done by user. Will always return a ToolOutput object. + * Get the mark scored by user. Will always return a ToolOutput object. */ - private ToolOutput getNumberAttempts(IScratchieService scratchieService, Long toolSessionId, Long learnerId) { + private ToolOutput getUserMark(IScratchieService scratchieService, Long toolSessionId, Long learnerId) { - int numberAttempts = scratchieService.getNumberAttempts(learnerId, toolSessionId); + int numberAttempts = scratchieService.getUserMark(toolSessionId, learnerId); - return new ToolOutput(ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, getI18NText( - ScratchieConstants.LEARNER_NUMBER_ATTEMPTS, true), numberAttempts); + return new ToolOutput(ScratchieConstants.LEARNER_MARK, getI18NText( + ScratchieConstants.LEARNER_MARK, true), numberAttempts); } } Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java,v diff -u -r1.4 -r1.5 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 28 Aug 2012 15:22:19 -0000 1.4 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 29 Aug 2012 10:34:09 -0000 1.5 @@ -426,20 +426,12 @@ public ScratchieAnswer getScratchieAnswerById (Long answerUid) { return (ScratchieAnswer) userManagementService.findById(ScratchieAnswer.class, answerUid); } - - public int getNumberAttempts(Long userId, Long sessionId) { - return scratchieAnswerVisitDao.getUserViewLogCount(sessionId, userId); - } public String finishToolSession(Long toolSessionId, Long userId) throws ScratchieApplicationException { ScratchieUser user = scratchieUserDao.getUserByUserIDAndSessionID(userId, toolSessionId); user.setSessionFinished(true); scratchieUserDao.saveObject(user); - // ScratchieSession session = scratchieSessionDao.getSessionBySessionId(toolSessionId); - // session.setStatus(ScratchieConstants.COMPLETED); - // scratchieSessionDao.saveObject(session); - String nextUrl = null; try { nextUrl = this.leaveToolSession(toolSessionId, userId); @@ -472,30 +464,8 @@ int totalAttempts = scratchieAnswerVisitDao.getUserViewLogCount(sessionId, user.getUserId()); user.setTotalAttempts(totalAttempts); - int mark = 0; //for displaying purposes if there is no attemps we assign -1 which will be shown as "-" - if (totalAttempts == 0) { - mark = -1; - - } else { - Set items = scratchie.getScratchieItems(); - retrieveScratched(items, user); - - for (ScratchieItem item : items) { - //add mark only if item was unraveled - if (item.isUnraveled()) { - int attempts = scratchieAnswerVisitDao.getUserViewLogCount(sessionId, user.getUserId(), - item.getUid()); - mark += item.getAnswers().size() - attempts; - - // add extra point if needed - if (scratchie.isExtraPoint() && (attempts == 1)) { - mark++; - } - } - } - } - + int mark = (totalAttempts == 0) ? -1 : getUserMark(sessionId, user.getUserId()); user.setMark(mark); } @@ -506,6 +476,30 @@ return groupSummaryList; } + public int getUserMark(Long sessionId, Long userId) { + ScratchieUser user = getUserByIDAndSession(userId, sessionId); + ScratchieSession session = scratchieSessionDao.getSessionBySessionId(sessionId); + Scratchie scratchie = session.getScratchie(); + Set items = scratchie.getScratchieItems(); + retrieveScratched(items, user); + + int mark = 0; + for (ScratchieItem item : items) { + // add mark only if an item was unraveled + if (item.isUnraveled()) { + int attempts = scratchieAnswerVisitDao.getUserViewLogCount(sessionId, userId, item.getUid()); + mark += item.getAnswers().size() - attempts; + + // add extra point if needed + if (scratchie.isExtraPoint() && (attempts == 1)) { + mark++; + } + } + } + + return mark; + } + public List getUserMasterDetail(Long sessionId, Long userId) { List logs = scratchieAnswerVisitDao.getLogsBySessionAndUser(sessionId, userId);