Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r9dcdc46408a8664a0fb27f09ae58a340c15f5764 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 9dcdc46408a8664a0fb27f09ae58a340c15f5764)
+++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -273,5 +273,6 @@
label.refresh =Refresh
label.display.name.column =Display name column
-
+label.authoring.answer.required =Required to answer
+warn.answers.required =Please, answer highlighted questions in order to continue.
#======= End labels: Exported 266 labels for en AU =====
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java
===================================================================
diff -u -r2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -23,6 +23,8 @@
/* $Id$ */
package org.lamsfoundation.lams.tool.assessment;
+import org.lamsfoundation.lams.tool.assessment.dto.RequiredQuestionsDTO;
+
public class AssessmentConstants {
public static final String TOOL_SIGNATURE = "laasse10";
@@ -200,6 +202,8 @@
public static final String ATTR_IS_USER_FAILED = "isUserFailed";
+ public static final String ATTR_REQUIRED_QUESTIONS_DTO = "requiredQuestionsDTO";
+
public static final String ATTR_FINISHED_LOCK = "finishedLock";
public static final String ATTR_USER_FINISHED = "userFinished";
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql
===================================================================
diff -u -rac48fd0f080c920174cce3d8b957ea1c63d965f4 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql (.../patch20140707.sql) (revision ac48fd0f080c920174cce3d8b957ea1c63d965f4)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140707.sql (.../patch20140707.sql) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -3,6 +3,9 @@
SET FOREIGN_KEY_CHECKS=0;
----------------------Put all sql statements below here-------------------------
+-- LDEV-3265 Ability to set questions required to be answered
+ALTER TABLE tl_laasse10_assessment_question ADD COLUMN answer_required TINYINT(1) NOT NULL DEFAULT 1;
+
-- LDEV-3263 Add support for renaming field names on sequence import
UPDATE lams_tool SET tool_version='20140707' WHERE tool_signature='laasse10';
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/RequiredQuestionsDTO.java
===================================================================
diff -u
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/RequiredQuestionsDTO.java (revision 0)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dto/RequiredQuestionsDTO.java (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -0,0 +1,56 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.tool.assessment.dto;
+
+import java.util.List;
+
+public class RequiredQuestionsDTO {
+ private boolean isRequiredAnswerMissed;
+ private int pageNumber;
+ private List missingRequiredQuestions;
+
+ public boolean isRequiredAnswerMissed() {
+ return isRequiredAnswerMissed;
+ }
+
+ public void setRequiredAnswerMissed(boolean isRequiredAnswerMissed) {
+ this.isRequiredAnswerMissed = isRequiredAnswerMissed;
+ }
+
+ public int getPageNumber() {
+ return pageNumber;
+ }
+
+ public void setPageNumber(int userUid) {
+ this.pageNumber = userUid;
+ }
+
+ public List getMissingRequiredQuestions() {
+ return missingRequiredQuestions;
+ }
+
+ public void setMissingRequiredQuestions(List fullName) {
+ this.missingRequiredQuestions = fullName;
+ }
+}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java
===================================================================
diff -u -r2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java (.../AssessmentQuestion.java) (revision 2a68a250e3ae88b708a9a2a91e9f3439a4b6d7a9)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java (.../AssessmentQuestion.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -41,7 +41,6 @@
* @author Andrey Balan
*
* @hibernate.class table="tl_laasse10_assessment_question"
- *
*/
public class AssessmentQuestion implements Cloneable, Sequencable, Comparable {
private static final Logger log = Logger.getLogger(AssessmentQuestion.class);
@@ -63,6 +62,8 @@
private float penaltyFactor;
+ private boolean answerRequired;
+
private String generalFeedback;
private String feedback;
@@ -294,7 +295,19 @@
public void setPenaltyFactor(float penaltyFactor) {
this.penaltyFactor = penaltyFactor;
}
+
+ /**
+ * @hibernate.property column="answer_required"
+ * @return
+ */
+ public boolean isAnswerRequired() {
+ return answerRequired;
+ }
+ public void setAnswerRequired(boolean answerRequired) {
+ this.answerRequired = answerRequired;
+ }
+
/**
* @hibernate.property column="general_feedback" type="text"
* @return
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java
===================================================================
diff -u -rac48fd0f080c920174cce3d8b957ea1c63d965f4 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (.../AssessmentImportContentVersionFilter.java) (revision ac48fd0f080c920174cce3d8b957ea1c63d965f4)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (.../AssessmentImportContentVersionFilter.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -50,9 +50,10 @@
}
/**
- * Import 20140102 version content to 20140428 version tool server.
+ * Import 20140428 version content to 20140707 version tool server.
*/
public void up20140428To20140707() {
this.renameField(AssessmentQuestion.class, "questionOptions", "options");
+ this.addField(AssessmentQuestion.class, "answerRequired", true);
}
}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java
===================================================================
diff -u -r495a38a55b249f3b65031de0ac76ecbd9b86ce09 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 495a38a55b249f3b65031de0ac76ecbd9b86ce09)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -465,6 +465,7 @@
questionForm.setContentFolderID(contentFolderID);
questionForm.setDefaultGrade("1");
questionForm.setPenaltyFactor("0");
+ questionForm.setAnswerRequired(true);
List optionList = new ArrayList();
for (int i = 0; i < AssessmentConstants.INITIAL_OPTIONS_NUMBER; i++) {
@@ -1662,6 +1663,7 @@
form.setQuestion(question.getQuestion());
form.setDefaultGrade(String.valueOf(question.getDefaultGrade()));
form.setPenaltyFactor(String.valueOf(question.getPenaltyFactor()));
+ form.setAnswerRequired(question.isAnswerRequired());
form.setGeneralFeedback(question.getGeneralFeedback());
form.setFeedback(question.getFeedback());
form.setMultipleAnswersAllowed(question.isMultipleAnswersAllowed());
@@ -1733,6 +1735,7 @@
question.setDefaultGrade(Integer.parseInt(questionForm.getDefaultGrade()));
question.setGeneralFeedback(questionForm.getGeneralFeedback());
+ question.setAnswerRequired(questionForm.isAnswerRequired());
if (type == AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE) {
question.setMultipleAnswersAllowed(questionForm.isMultipleAnswersAllowed());
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java
===================================================================
diff -u -r470bccfbbff0b31c242b99313c76456a1bdf1462 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 470bccfbbff0b31c242b99313c76456a1bdf1462)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -60,6 +60,7 @@
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.assessment.AssessmentConstants;
+import org.lamsfoundation.lams.tool.assessment.dto.RequiredQuestionsDTO;
import org.lamsfoundation.lams.tool.assessment.model.Assessment;
import org.lamsfoundation.lams.tool.assessment.model.AssessmentOptionAnswer;
import org.lamsfoundation.lams.tool.assessment.model.AssessmentOverallFeedback;
@@ -402,7 +403,14 @@
request.getParameter(AssessmentConstants.PARAM_SECONDS_LEFT));
}
- int pageNumber = WebUtil.readIntParam(request, AssessmentConstants.ATTR_PAGE_NUMBER);
+ //get pageNumber as request parameter in normal case and as attribute in case of submitAll returned it back
+ int pageNumber;
+ if ((request.getAttribute(AssessmentConstants.ATTR_PAGE_NUMBER) == null)) {
+ pageNumber = WebUtil.readIntParam(request, AssessmentConstants.ATTR_PAGE_NUMBER);
+ } else {
+ pageNumber = (Integer) request.getAttribute(AssessmentConstants.ATTR_PAGE_NUMBER);
+ }
+
int questionNumberingOffset = 0;
ArrayList> pagedQuestions = (ArrayList>) sessionMap.get(AssessmentConstants.ATTR_PAGED_QUESTIONS);
for (int i = 0; i < pageNumber-1; i++) {
@@ -423,8 +431,20 @@
HttpServletResponse response) throws ServletException {
String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
+
//get user answers from request and store them into sessionMap
storeUserAnswersIntoSessionMap(request);
+
+ //check all required questions got answered
+ RequiredQuestionsDTO requiredQuestionsDTO = checkAllRequiredQuestionsAnswered(sessionMap);
+ //if not then forward to nextPage()
+ if (requiredQuestionsDTO.isRequiredAnswerMissed()) {
+ request.setAttribute(AssessmentConstants.ATTR_PAGE_NUMBER, requiredQuestionsDTO.getPageNumber());
+ request.setAttribute(AssessmentConstants.ATTR_REQUIRED_QUESTIONS_DTO, requiredQuestionsDTO);
+
+ return nextPage(mapping, form, request, response);
+ }
+
//store results from sessionMap into DB
storeUserAnswersIntoDatabase(sessionMap, false);
@@ -707,6 +727,73 @@
}
/**
+ * Get back user answers from request and store it into sessionMap.
+ *
+ * @param request
+ */
+ private RequiredQuestionsDTO checkAllRequiredQuestionsAnswered(SessionMap sessionMap){
+
+ ArrayList> pagedQuestions = (ArrayList>) sessionMap.get(AssessmentConstants.ATTR_PAGED_QUESTIONS);
+
+ //array of missing required questions
+ List missingRequiredQuestions = new ArrayList();
+
+ //iterate through all pages to find first that contains missing required questions
+ int pageCount;
+ for (pageCount = 0; pageCount < pagedQuestions.size(); pageCount++) {
+ LinkedHashSet questionsForOnePage = pagedQuestions.get(pageCount);
+
+ int questionCount = 0;
+ for (AssessmentQuestion question : questionsForOnePage) {
+ if (question.isAnswerRequired()) {
+
+ boolean isAnswered = false;
+
+ int questionType = question.getType();
+ if (questionType == AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE) {
+
+ for (AssessmentQuestionOption option : question.getOptions()) {
+ isAnswered |= option.getAnswerBoolean();
+ }
+
+ } else if (questionType == AssessmentConstants.QUESTION_TYPE_MATCHING_PAIRS) {
+ for (AssessmentQuestionOption option : question.getOptions()) {
+ isAnswered |= option.getAnswerInt() != 0;
+ }
+
+ } else if ((questionType == AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER)
+ || (questionType == AssessmentConstants.QUESTION_TYPE_NUMERICAL)
+ || (questionType == AssessmentConstants.QUESTION_TYPE_TRUE_FALSE)
+ || (questionType == AssessmentConstants.QUESTION_TYPE_ESSAY)) {
+ isAnswered |= StringUtils.isNotBlank(question.getAnswerString());
+
+ } else if (questionType == AssessmentConstants.QUESTION_TYPE_ORDERING) {
+ isAnswered = true;
+ }
+
+ // required question was not answered, so store its sequence id
+ if (!isAnswered) {
+ missingRequiredQuestions.add(questionCount);
+ }
+
+ }
+
+ questionCount++;
+ }
+
+ if (!missingRequiredQuestions.isEmpty()) {
+ break;
+ }
+ }
+
+ RequiredQuestionsDTO requiredQuestionsDTO = new RequiredQuestionsDTO();
+ requiredQuestionsDTO.setRequiredAnswerMissed(!missingRequiredQuestions.isEmpty());
+ requiredQuestionsDTO.setPageNumber(pageCount + 1);
+ requiredQuestionsDTO.setMissingRequiredQuestions(missingRequiredQuestions);
+ return requiredQuestionsDTO;
+ }
+
+ /**
* Prepare data for displaying results page
*/
private void prepareResultsPageData(SessionMap sessionMap){
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java
===================================================================
diff -u -r0913693693b87a26905b6b8057969e18d7c15d8f -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java (.../AssessmentQuestionForm.java) (revision 0913693693b87a26905b6b8057969e18d7c15d8f)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentQuestionForm.java (.../AssessmentQuestionForm.java) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -46,6 +46,7 @@
private String question;
private String defaultGrade;
private String penaltyFactor;
+ private boolean answerRequired;
private String generalFeedback;
private String feedback;
private boolean multipleAnswersAllowed;
@@ -128,7 +129,15 @@
public void setPenaltyFactor(String penaltyFactor) {
this.penaltyFactor = penaltyFactor;
}
+
+ public boolean isAnswerRequired() {
+ return answerRequired;
+ }
+ public void setAnswerRequired(boolean answerRequired) {
+ this.answerRequired = answerRequired;
+ }
+
public String getGeneralFeedback() {
return generalFeedback;
}
Index: lams_tool_assessment/web/includes/css/assessment.css
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/includes/css/assessment.css (.../assessment.css) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/includes/css/assessment.css (.../assessment.css) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -141,3 +141,12 @@
color: red;
}
+.warning-answer-required {
+ background-color: bisque !important;
+ background-image: none !important;
+ border-bottom: 1px solid white !important;
+}
+
+#warning-answers-required {
+ display: none;
+}
Index: lams_tool_assessment/web/pages/authoring/parts/addessay.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addessay.jsp (.../addessay.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addessay.jsp (.../addessay.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -104,6 +104,11 @@
+
+
+
+
+
Index: lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp (.../addmatchingpairs.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addmatchingpairs.jsp (.../addmatchingpairs.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -140,6 +140,11 @@
+
+
+
+
+
@@ -150,7 +155,7 @@
-
+
Index: lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp (.../addmultiplechoice.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addmultiplechoice.jsp (.../addmultiplechoice.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -158,6 +158,11 @@
+
+
+
+
+
@@ -176,7 +181,7 @@
-
+
Index: lams_tool_assessment/web/pages/authoring/parts/addnumerical.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addnumerical.jsp (.../addnumerical.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addnumerical.jsp (.../addnumerical.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -204,6 +204,11 @@
+
+
+
+
+
Index: lams_tool_assessment/web/pages/authoring/parts/addordering.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addordering.jsp (.../addordering.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addordering.jsp (.../addordering.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -144,6 +144,11 @@
+
+
+
+
+
Index: lams_tool_assessment/web/pages/authoring/parts/addshortanswer.jsp
===================================================================
diff -u -r0a5c3ad1b814856b9ea78efb941e46a52a7a0de6 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addshortanswer.jsp (.../addshortanswer.jsp) (revision 0a5c3ad1b814856b9ea78efb941e46a52a7a0de6)
+++ lams_tool_assessment/web/pages/authoring/parts/addshortanswer.jsp (.../addshortanswer.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -151,6 +151,11 @@
+
+
+
+
+
Index: lams_tool_assessment/web/pages/authoring/parts/addtruefalse.jsp
===================================================================
diff -u -raf7b155293a91f6d9bf32b74a09add86bd797f82 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/authoring/parts/addtruefalse.jsp (.../addtruefalse.jsp) (revision af7b155293a91f6d9bf32b74a09add86bd797f82)
+++ lams_tool_assessment/web/pages/authoring/parts/addtruefalse.jsp (.../addtruefalse.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -84,7 +84,7 @@
.
-
+
@@ -121,6 +121,11 @@
+
+
+
+
+
Index: lams_tool_assessment/web/pages/learning/learning.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -10,6 +10,7 @@
<%@ include file="/common/header.jsp"%>
+
<%-- param has higher level for request attribute --%>
@@ -127,14 +128,33 @@
);
+ //check if we came back due to missing required question's answer
+ $(document).ready(function(){
+ if (${requiredQuestionsDTO != null}) {
+ validateAnswers();
+ }
+ });
+
function finishSession(){
+ if (!validateAnswers()) {
+ return;
+ }
+
document.location.href ='';
return false;
}
function continueReflect(){
+ if (!validateAnswers()) {
+ return;
+ }
+
document.location.href='';
}
function nextPage(pageNumber){
+ if (!validateAnswers()) {
+ return;
+ }
+
var secondsLeft = 0;
if (${not finishedLock && assessment.timeLimit > 0}) {
var times = $("#countdown").countdown('getTimes');
@@ -145,8 +165,17 @@
myForm.submit();
}
function submitAll(){
+ if (!validateAnswers()) {
+ return;
+ }
+
+ var secondsLeft = 0;
+ if (${not finishedLock && assessment.timeLimit > 0}) {
+ var times = $("#countdown").countdown('getTimes');
+ secondsLeft = times[4]*3600 + times[5]*60 + times[6];
+ }
var myForm = $("#answers");
- myForm.attr("action", "");
+ myForm.attr("action", "&secondsLeft=" + secondsLeft);
myForm.submit();
}
function resubmit(){
@@ -199,6 +228,89 @@
});
}
+ function validateAnswers() {
+
+ if (${finishedLock || !hasEditRight}) {
+ return true;
+ }
+
+ var missingRequiredQuestions = [];
+
+
+
+
+
+ //multiplechoice
+ if ($("input[name^=question${status.index}]:checked").length == 0) {
+ missingRequiredQuestions.push("${status.index}");
+ }
+
+
+
+ //matchingpairs
+
+ var eachSelectHasBeenAnswered = true;
+ $("select[name^=question${status.index}_]").each(function() {
+ eachSelectHasBeenAnswered &= this.value != -1;
+ });
+
+ if (!eachSelectHasBeenAnswered) {
+ missingRequiredQuestions.push("${status.index}");
+ }
+
+
+
+
+ //shortanswer or numerical or essay without ckeditor
+ var inputText = $("input[name=question${status.index}]")[0];
+ if($.trim(inputText.value).length == 0) {
+ missingRequiredQuestions.push("${status.index}");
+ }
+
+
+
+ //truefalse
+ if ($("input[name=question${status.index}]:checked").length == 0) {
+ missingRequiredQuestions.push("${status.index}");
+ }
+
+
+
+ //essay with ckeditor
+ var ckeditorData = CKEDITOR.instances["question${status.index}"].getData();
+ //can't be null and empty value
+ if((ckeditorData == null) || (ckeditorData.replace(/ | |
|\s||<\/p>|\xa0/g, "").length == 0)) {
+ missingRequiredQuestions.push("${status.index}");
+ }
+
+
+
+ //ordering - do nothing
+
+
+
+
+
+ //return true in case all required questions were answered, false otherwise
+ if (missingRequiredQuestions.length == 0) {
+ return true;
+
+ } else {
+ //remove .warning-answer-required from all questions
+ $('[id^=question-area-]').removeClass('warning-answer-required');
+
+ //add .warning-answer-required class to those needs to be filled
+ for (i = 0; i < missingRequiredQuestions.length; i++) {
+ $("#question-area-" + missingRequiredQuestions[i]).addClass('warning-answer-required');
+ }
+
+ //show alert message as well
+ $("#warning-answers-required").show();
+ $("html, body").animate({ scrollTop: 0 }, "slow");//window.scrollTo(0, 0);
+ return false;
+ }
+ }
+
@@ -238,6 +350,10 @@
+
+
+
+
Index: lams_tool_assessment/web/pages/learning/parts/allquestions.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/parts/allquestions.jsp (.../allquestions.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/parts/allquestions.jsp (.../allquestions.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -9,11 +9,17 @@
-
+ |
+
+
+ " alt="" src="${ctxPath}/includes/images/req.gif" />
+
+
${question.question}
+
Index: lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp (.../multiplechoice.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/parts/multiplechoice.jsp (.../multiplechoice.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -33,7 +33,7 @@
checked="checked"
disabled="disabled"
- />
+ />
-
-
-
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
+
+
+
<%@ include file="markandpenaltyarea.jsp"%>
Index: lams_tool_assessment/web/pages/learning/parts/numerical.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/parts/numerical.jsp (.../numerical.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/parts/numerical.jsp (.../numerical.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -20,7 +20,7 @@
disabled="disabled"
+ disabled="disabled"
/>
|
Index: lams_tool_assessment/web/pages/learning/parts/shortanswer.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/parts/shortanswer.jsp (.../shortanswer.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/parts/shortanswer.jsp (.../shortanswer.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -20,7 +20,7 @@
disabled="disabled"
+ disabled="disabled"
/>
|
Index: lams_tool_assessment/web/pages/learning/parts/truefalse.jsp
===================================================================
diff -u -r1e33f64c06430834c80a2b01d42bcdf844c5d958 -r3e771e28271a0ef14f3989fe84231546420df296
--- lams_tool_assessment/web/pages/learning/parts/truefalse.jsp (.../truefalse.jsp) (revision 1e33f64c06430834c80a2b01d42bcdf844c5d958)
+++ lams_tool_assessment/web/pages/learning/parts/truefalse.jsp (.../truefalse.jsp) (revision 3e771e28271a0ef14f3989fe84231546420df296)
@@ -59,7 +59,7 @@
checked="checked"
- disabled="disabled"
+ disabled="disabled"
/>
|
@@ -69,14 +69,14 @@
-
+
-
+
-
+
| |