Index: lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r6ade8791af29bde5c1e1b1aad674a9d23b69fb36 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 6ade8791af29bde5c1e1b1aad674a9d23b69fb36) +++ lams_tool_scratchie/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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 =================================================================== diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/db/sql/tool_insert.sql (.../tool_insert.sql) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18) +++ lams_tool_scratchie/db/sql/tool_insert.sql (.../tool_insert.sql) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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 =================================================================== diff -u -r6ade8791af29bde5c1e1b1aad674a9d23b69fb36 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 6ade8791af29bde5c1e1b1aad674a9d23b69fb36) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/ScratchieConstants.java (.../ScratchieConstants.java) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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 =================================================================== diff -u -rded32af47a9de99cb3319fdd7461906323f7e293 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision ded32af47a9de99cb3319fdd7461906323f7e293) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/IScratchieService.java (.../IScratchieService.java) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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 =================================================================== diff -u -r6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision 6aaee4b2fe2caa08b0c63a0de11f05042d5a3e18) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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 =================================================================== diff -u -rded32af47a9de99cb3319fdd7461906323f7e293 -r7f8e34f36196eb71f16ec1984091704d36682166 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision ded32af47a9de99cb3319fdd7461906323f7e293) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 7f8e34f36196eb71f16ec1984091704d36682166) @@ -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);