Index: lams_tool_daco/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -273,7 +273,8 @@ error.record.longlat.longitude.float=The longitude in question {0} must be an real number. error.record.longlat.latitude.blank=The latitude in question {0} must not be blank. error.record.longlat.latitude.float=The latitude in question {0} must be an real number. -error.record.notenough=You should enter at leat {0} records. +error.record.notenough=You should enter at least {0} records. +error.record.toomuch=You should enter no more than {0} records. error.upload.failed =Upload file failed: {0} error.msg.upload.file.not.found =Could not find upload file {0}. Index: lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -273,8 +273,10 @@ error.record.longlat.longitude.float=The longitude in question {0} must be an real number. error.record.longlat.latitude.blank=The latitude in question {0} must not be blank. error.record.longlat.latitude.float=The latitude in question {0} must be an real number. -error.record.notenough=You should enter at leat {0} records. +error.record.notenough=You should enter at least {0} records. +error.record.toomuch=You should enter no more than {0} records. + error.upload.failed =Upload file failed: {0} error.msg.upload.file.not.found =Could not find upload file {0}. error.msg.zip.file.exception =Could not handle zip file when uploading file. Index: lams_tool_daco/db/clear_old_learning_session.sql =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/db/clear_old_learning_session.sql (.../clear_old_learning_session.sql) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/db/clear_old_learning_session.sql (.../clear_old_learning_session.sql) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -1,4 +1,5 @@ delete from lams_progress_attempted; delete from lams_progress_completed; delete from lams_learner_progress; -delete from lams_tool_session; \ No newline at end of file +delete from lams_tool_session; +delete from lams_learning_transition; \ No newline at end of file Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java =================================================================== diff -u -rf12326dca55fbb5b273579ce521c97355a66472d -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java (.../DacoConstants.java) (revision f12326dca55fbb5b273579ce521c97355a66472d) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/DacoConstants.java (.../DacoConstants.java) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -164,6 +164,7 @@ public static final String ERROR_MSG_RECORD_LATITUDE_BLANK = "error.record.longlat.latitude.blank"; public static final String ERROR_MSG_RECORD_LATITUDE_FLOAT = "error.record.longlat.latitude.float"; public static final String ERROR_MSG_RECORD_NOTENOUGH = "error.record.notenough"; + public static final String ERROR_MSG_RECORD_TOOMUCH = "error.record.toomuch"; public static final String PAGE_EDITABLE = "isPageEditable"; public static final String MODE_AUTHOR_SESSION = "author_session"; Index: lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java =================================================================== diff -u -rf12326dca55fbb5b273579ce521c97355a66472d -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java (.../LearningAction.java) (revision f12326dca55fbb5b273579ce521c97355a66472d) +++ lams_tool_daco/src/java/org/lamsfoundation/lams/tool/daco/web/action/LearningAction.java (.../LearningAction.java) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -245,7 +245,9 @@ ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); - if (!validateBeforeFinish(request, sessionMapID)) { + ActionErrors errors = validateBeforeFinish(request, sessionMapID); + if (!errors.isEmpty()) { + this.addErrors(request, errors); return mapping.getInputForward(); } @@ -261,6 +263,7 @@ request.setAttribute(DacoConstants.ATTR_NEXT_ACTIVITY_URL, nextActivityUrl); } catch (DacoApplicationException e) { + LearningAction.log.error("Failed get next activity url:" + e.getMessage()); } @@ -299,8 +302,6 @@ List> records = (List>) sessionMap.get(DacoConstants.ATTR_RECORD_LIST); int displayedRecordNumber = recordForm.getDisplayedRecordNumber(); - System.out.print(displayedRecordNumber); - System.out.print(records.size()); boolean isEdit = false; if (displayedRecordNumber <= records.size()) { record = records.get(displayedRecordNumber - 1); @@ -375,7 +376,6 @@ } else { for (int checkboxNumber = 0; checkboxNumber < checkboxes.length; checkboxNumber++) { - System.out.println("CHECKBOX " + checkboxNumber + ": " + checkboxes[checkboxNumber]); answer.setAnswer(checkboxes[checkboxNumber]); if (checkboxNumber < checkboxes.length - 1) { service.saveOrUpdateAnswer(answer); @@ -466,7 +466,9 @@ // get session value String sessionMapID = WebUtil.readStrParam(request, DacoConstants.ATTR_SESSION_MAP_ID); - if (!validateBeforeFinish(request, sessionMapID)) { + ActionErrors errors = validateBeforeFinish(request, sessionMapID); + if (!errors.isEmpty()) { + this.addErrors(request, errors); return mapping.getInputForward(); } @@ -534,8 +536,20 @@ // ************************************************************************************* // Private method // ************************************************************************************* - protected boolean validateBeforeFinish(HttpServletRequest request, String sessionMapID) { - return true; + protected ActionErrors validateBeforeFinish(HttpServletRequest request, String sessionMapID) { + ActionErrors errors = new ActionErrors(); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + int recordCount = ((List) sessionMap.get(DacoConstants.ATTR_RECORD_LIST)).size(); + Daco daco = (Daco) sessionMap.get(DacoConstants.ATTR_DACO); + if (daco.getMinRecords() != null && recordCount < daco.getMinRecords()) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DacoConstants.ERROR_MSG_RECORD_NOTENOUGH, daco + .getMinRecords())); + } + else if (daco.getMaxRecords() != null && recordCount > daco.getMaxRecords()) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(DacoConstants.ERROR_MSG_RECORD_TOOMUCH, daco + .getMaxRecords())); + } + return errors; } protected IDacoService getDacoService() { Index: lams_tool_daco/web/includes/javascript/dacoLearning.js =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/web/includes/javascript/dacoLearning.js (.../dacoLearning.js) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/includes/javascript/dacoLearning.js (.../dacoLearning.js) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -10,12 +10,12 @@ function finishSession(){ document.getElementById("finishButton").disabled = true; - document.location.href =''; + document.location.href = finishUrl; return false; } function continueReflect(){ - document.location.href=''; + document.location.href=continueReflectUrl; } function saveOrUpdateRecord() { Index: lams_tool_daco/web/pages/learning/finish.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/web/pages/learning/finish.jsp (.../finish.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/learning/finish.jsp (.../finish.jsp) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -6,9 +6,7 @@ \ No newline at end of file Index: lams_tool_daco/web/pages/learning/learning.jsp =================================================================== diff -u -rbe03cfbba16a388e85d82cb8986f63d6b2ad568b -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/web/pages/learning/learning.jsp (.../learning.jsp) (revision be03cfbba16a388e85d82cb8986f63d6b2ad568b) +++ lams_tool_daco/web/pages/learning/learning.jsp (.../learning.jsp) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -33,6 +33,8 @@ Index: lams_tool_daco/web/pages/learning/listRecords.jsp =================================================================== diff -u -rf12326dca55fbb5b273579ce521c97355a66472d -ra4e564624bbf22983634d0e77a2e467403d0d7e5 --- lams_tool_daco/web/pages/learning/listRecords.jsp (.../listRecords.jsp) (revision f12326dca55fbb5b273579ce521c97355a66472d) +++ lams_tool_daco/web/pages/learning/listRecords.jsp (.../listRecords.jsp) (revision a4e564624bbf22983634d0e77a2e467403d0d7e5) @@ -44,15 +44,15 @@ Record number - - +
${questionStatus.index+1}
${question.description}