Index: lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties,v
diff -u -r1.5 -r1.6
--- lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties 4 Feb 2009 00:19:20 -0000 1.5
+++ lams_tool_assessment/conf/language/lams/ApplicationResources_en_AU.properties 4 Feb 2009 18:03:05 -0000 1.6
@@ -190,6 +190,7 @@
error.title.empty =Title can not be blank
error.form.validation.error =You have 1 error in a form. It has been highlighted
error.form.validation.errors =You have {0} errors in a form. They have been highlighted
+error.form.validation.hundred.score =One of the answers should have a grade of 100% so it is possible to get full marks for this question.
message.msg.maxFileSize =Max 250K
label.open =Open
label.delete =Delete
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAnswerOption.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Attic/AssessmentAnswerOption.java,v
diff -u -r1.2 -r1.3
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAnswerOption.java 2 Feb 2009 22:20:28 -0000 1.2
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAnswerOption.java 4 Feb 2009 18:03:05 -0000 1.3
@@ -50,6 +50,9 @@
private float grade;
private String feedback;
+
+ // *************** NON Persist Fields ********************
+ private String acceptedErrorStr = "0.0";;
// **********************************************************
// Get/Set methods
@@ -173,6 +176,13 @@
public void setFeedback(String feedback) {
this.feedback = feedback;
}
+
+ public String getAcceptedErrorStr() {
+ return acceptedErrorStr;
+ }
+ public void setAcceptedErrorStr(String acceptedErrorStr) {
+ this.acceptedErrorStr = acceptedErrorStr;
+ }
@Override
public Object clone() {
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java,v
diff -u -r1.4 -r1.5
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 4 Feb 2009 00:19:20 -0000 1.4
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentQuestion.java 4 Feb 2009 18:03:05 -0000 1.5
@@ -106,7 +106,7 @@
Set set = new HashSet();
while (iter.hasNext()) {
AssessmentAnswerOption answerOption = (AssessmentAnswerOption) iter.next();
- AssessmentAttachment newAnswerOption = (AssessmentAttachment) answerOption.clone();
+ AssessmentAnswerOption newAnswerOption = (AssessmentAnswerOption) answerOption.clone();
set.add(newAnswerOption);
}
obj.answerOptions = set;
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java,v
diff -u -r1.1 -r1.2
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java 4 Feb 2009 00:19:20 -0000 1.1
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentUnit.java 4 Feb 2009 18:03:05 -0000 1.2
@@ -42,6 +42,10 @@
private String unit;
private float multiplier;
+
+ // *************** NON Persist Fields ********************
+ private String multiplierStr = "0.0";
+
// **********************************************************
// Get/Set methods
@@ -93,6 +97,14 @@
this.multiplier = multiplier;
}
+ public String getMultiplierStr() {
+ return multiplierStr;
+ }
+
+ public void setMultiplierStr(String multiplierStr) {
+ this.multiplierStr = multiplierStr;
+ }
+
/**
* @hibernate.property column="unit"
*
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java,v
diff -u -r1.1 -r1.2
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 29 Jan 2009 05:59:05 -0000 1.1
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java 4 Feb 2009 18:03:05 -0000 1.2
@@ -755,8 +755,6 @@
try {
exportContentService.registerFileClassForExport(AssessmentAttachment.class.getName(), "fileUuid",
"fileVersionId");
- exportContentService.registerFileClassForExport(AssessmentQuestion.class.getName(), "fileUuid",
- "fileVersionId");
exportContentService.exportToolContent(toolContentId, toolContentObj, assessmentToolContentHandler,
rootPath);
} catch (ExportToolContentException e) {
@@ -770,8 +768,6 @@
try {
exportContentService.registerFileClassForImport(AssessmentAttachment.class.getName(), "fileUuid",
"fileVersionId", "fileName", "fileType", null, null);
- exportContentService.registerFileClassForImport(AssessmentQuestion.class.getName(), "fileUuid",
- "fileVersionId", "fileName", "fileType", null, "initialItem");
Object toolPOJO = exportContentService.importToolContent(toolContentPath, assessmentToolContentHandler,
fromVersion, toVersion);
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java,v
diff -u -r1.5 -r1.6
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java 4 Feb 2009 00:19:20 -0000 1.5
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java 4 Feb 2009 18:03:05 -0000 1.6
@@ -620,9 +620,10 @@
HttpServletResponse response) {
String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
+ String contentFolderID = (String) sessionMap.get(AttributeNames.PARAM_CONTENT_FOLDER_ID);
AssessmentQuestionForm questionForm = (AssessmentQuestionForm) form;
questionForm.setSessionMapID(sessionMapID);
- questionForm.setContentFolderID((String) sessionMap.get(AttributeNames.PARAM_CONTENT_FOLDER_ID));
+ questionForm.setContentFolderID(contentFolderID);
questionForm.setDefaultGrade("1");
questionForm.setPenaltyFactor("0.1");
@@ -646,6 +647,7 @@
short type = (short) NumberUtils.stringToInt(request.getParameter(AssessmentConstants.ATTR_QUESTION_TYPE));
sessionMap.put(AssessmentConstants.ATTR_QUESTION_TYPE, type);
+ request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID);
return findForward(type, mapping);
}
@@ -664,7 +666,8 @@
// get back sessionMAP
String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID);
SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
-
+ String contentFolderID = (String) sessionMap.get(AttributeNames.PARAM_CONTENT_FOLDER_ID);
+
int questionIdx = NumberUtils.stringToInt(request.getParameter(AssessmentConstants.PARAM_QUESTION_INDEX), -1);
AssessmentQuestion question = null;
if (questionIdx != -1) {
@@ -674,10 +677,11 @@
if (question != null) {
AssessmentQuestionForm questionForm = (AssessmentQuestionForm) form;
populateQuestionToForm(questionIdx, question, questionForm, request);
- questionForm.setContentFolderID((String) sessionMap.get(AttributeNames.PARAM_CONTENT_FOLDER_ID));
+ questionForm.setContentFolderID(contentFolderID);
}
}
sessionMap.put(AssessmentConstants.ATTR_QUESTION_TYPE, question.getType());
+ request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, contentFolderID);
return findForward(question == null ? -1 : question.getType(), mapping);
}
@@ -817,6 +821,8 @@
option.setGrade(0);
optionList.add(option);
+ request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request,
+ AttributeNames.PARAM_CONTENT_FOLDER_ID));
request.setAttribute(AssessmentConstants.ATTR_QUESTION_TYPE, WebUtil.readIntParam(request,
AssessmentConstants.ATTR_QUESTION_TYPE));
request.setAttribute(AssessmentConstants.ATTR_OPTION_LIST, optionList);
@@ -846,6 +852,8 @@
// delList.add(question);
}
+ request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request,
+ AttributeNames.PARAM_CONTENT_FOLDER_ID));
request.setAttribute(AssessmentConstants.ATTR_QUESTION_TYPE, WebUtil.readIntParam(request,
AssessmentConstants.ATTR_QUESTION_TYPE));
request.setAttribute(AssessmentConstants.ATTR_OPTION_LIST, optionList);
@@ -905,6 +913,8 @@
optionList.addAll(rList);
}
+ request.setAttribute(AttributeNames.PARAM_CONTENT_FOLDER_ID, WebUtil.readStrParam(request,
+ AttributeNames.PARAM_CONTENT_FOLDER_ID));
request.setAttribute(AssessmentConstants.ATTR_QUESTION_TYPE, WebUtil.readIntParam(request,
AssessmentConstants.ATTR_QUESTION_TYPE));
request.setAttribute(AssessmentConstants.ATTR_OPTION_LIST, optionList);
@@ -1272,10 +1282,10 @@
* Get answer options from HttpRequest
*
* @param request
- * @param skipBlankOptions whether the blank options will be preserved or not
+ * @param isForSaving whether the blank options will be preserved or not
*
*/
- private TreeSet getOptionsFromRequest(HttpServletRequest request, boolean skipBlankOptions) {
+ private TreeSet getOptionsFromRequest(HttpServletRequest request, boolean isForSaving) {
Map paramMap = splitRequestParameter(request, AssessmentConstants.ATTR_OPTION_LIST);
int count = NumberUtils.stringToInt(paramMap.get(AssessmentConstants.ATTR_OPTION_COUNT));
@@ -1284,49 +1294,52 @@
for (int i = 0; i < count; i++) {
if ((questionType == AssessmentConstants.QUESTION_TYPE_MULTIPLE_CHOICE)
|| (questionType == AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER)) {
+
String answerString = paramMap.get(AssessmentConstants.ATTR_OPTION_ANSWER_PREFIX + i);
- float grade = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_OPTION_GRADE_PREFIX + i));
- String feedback = paramMap.get(AssessmentConstants.ATTR_OPTION_FEEDBACK_PREFIX + i);
- String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
-
- if ((answerString == null) && skipBlankOptions) {
+ if ((answerString == null) && isForSaving) {
continue;
}
+
AssessmentAnswerOption option = new AssessmentAnswerOption();
+ String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
option.setSequenceId(NumberUtils.stringToInt(sequenceId));
option.setAnswerString(answerString);
- option.setGrade(grade);
- option.setFeedback(feedback);
+ float grade = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_OPTION_GRADE_PREFIX + i));
+ option.setGrade(grade);
+ option.setFeedback((String) paramMap.get(AssessmentConstants.ATTR_OPTION_FEEDBACK_PREFIX + i));
optionList.add(option);
} else if (questionType == AssessmentConstants.QUESTION_TYPE_MATCHING_PAIRS) {
- String answerString = paramMap.get(AssessmentConstants.ATTR_OPTION_ANSWER_PREFIX + i);
String question = paramMap.get(AssessmentConstants.ATTR_OPTION_QUESTION_PREFIX + i);
- String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
-
- if ((question == null) && skipBlankOptions) {
+ if ((question == null) && isForSaving) {
continue;
}
+
AssessmentAnswerOption option = new AssessmentAnswerOption();
+ String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
option.setSequenceId(NumberUtils.stringToInt(sequenceId));
- option.setAnswerString(answerString);
+ option.setAnswerString((String) paramMap.get(AssessmentConstants.ATTR_OPTION_ANSWER_PREFIX + i));
option.setQuestion(question);
optionList.add(option);
} else if (questionType == AssessmentConstants.QUESTION_TYPE_NUMERICAL) {
String answerString = paramMap.get(AssessmentConstants.ATTR_OPTION_ANSWER_PREFIX + i);
- float acceptedError = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_OPTION_ACCEPTED_ERROR_PREFIX + i));
- float grade = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_OPTION_GRADE_PREFIX + i));
- String feedback = paramMap.get(AssessmentConstants.ATTR_OPTION_FEEDBACK_PREFIX + i);
- String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
-
- if ((answerString == null) && skipBlankOptions) {
+ if ((answerString == null) && isForSaving) {
continue;
}
+
AssessmentAnswerOption option = new AssessmentAnswerOption();
+ String sequenceId = paramMap.get(AssessmentConstants.ATTR_OPTION_SEQUENCE_ID_PREFIX + i);
option.setSequenceId(NumberUtils.stringToInt(sequenceId));
option.setAnswerString(answerString);
- option.setAcceptedError(acceptedError);
- option.setGrade(grade);
- option.setFeedback(feedback);
+ String acceptedErrorStr = paramMap.get(AssessmentConstants.ATTR_OPTION_ACCEPTED_ERROR_PREFIX + i);
+ if (isForSaving && !StringUtils.isBlank(acceptedErrorStr)) {
+ float acceptedError = Float.valueOf(acceptedErrorStr);
+ option.setAcceptedError(acceptedError);
+ } else {
+ option.setAcceptedErrorStr(acceptedErrorStr);
+ }
+ float grade = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_OPTION_GRADE_PREFIX + i));
+ option.setGrade(grade);
+ option.setFeedback((String) paramMap.get(AssessmentConstants.ATTR_OPTION_FEEDBACK_PREFIX + i));
optionList.add(option);
}
}
@@ -1338,28 +1351,28 @@
*
* @param request
*/
- private TreeSet getUnitsFromRequest(HttpServletRequest request, boolean skipBlankUnits) {
+ private TreeSet getUnitsFromRequest(HttpServletRequest request, boolean isForSaving) {
Map paramMap = splitRequestParameter(request, AssessmentConstants.ATTR_UNIT_LIST);
int count = NumberUtils.stringToInt(paramMap.get(AssessmentConstants.ATTR_UNIT_COUNT));
TreeSet unitList = new TreeSet(new AssessmentUnitComparator());
for (int i = 0; i < count; i++) {
String unitStr = paramMap.get(AssessmentConstants.ATTR_UNIT_UNIT_PREFIX + i);
- float multiplier = Float.valueOf(paramMap.get(AssessmentConstants.ATTR_UNIT_MULTIPLIER_PREFIX + i));
- String sequenceId = paramMap.get(AssessmentConstants.ATTR_UNIT_SEQUENCE_ID_PREFIX + i);
-
- if (StringUtils.isBlank(unitStr) && skipBlankUnits) {
+ if (StringUtils.isBlank(unitStr) && isForSaving) {
continue;
}
+
AssessmentUnit unit = new AssessmentUnit();
+ String sequenceId = paramMap.get(AssessmentConstants.ATTR_UNIT_SEQUENCE_ID_PREFIX + i);
unit.setSequenceId(NumberUtils.stringToInt(sequenceId));
unit.setUnit(unitStr);
- unit.setMultiplier(multiplier);
-// if (!StringUtils.isBlank(unitStr)) {
-// int gradeBoundary = NumberUtils.stringToInt(paramMap
-// .get(AssessmentConstants.ATTR_OVERALL_FEEDBACK_GRADE_BOUNDARY_PREFIX + i));
-// unit.setGradeBoundary(gradeBoundary);
-// }
+ String multiplierStr = (String) paramMap.get(AssessmentConstants.ATTR_UNIT_MULTIPLIER_PREFIX + i);
+ if (isForSaving && !StringUtils.isBlank(multiplierStr)) {
+ float multiplier = Float.valueOf(multiplierStr);
+ unit.setMultiplier(multiplier);
+ } else {
+ unit.setMultiplierStr(multiplierStr);
+ }
unitList.add(unit);
}
return unitList;
Index: lams_tool_assessment/web/includes/javascript/assessmentoption.js
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/web/includes/javascript/assessmentoption.js,v
diff -u -r1.2 -r1.3
--- lams_tool_assessment/web/includes/javascript/assessmentoption.js 2 Feb 2009 22:20:28 -0000 1.2
+++ lams_tool_assessment/web/includes/javascript/assessmentoption.js 4 Feb 2009 18:03:05 -0000 1.3
@@ -7,22 +7,27 @@
// var addOptionUrl = "";
function addOption(){
var url= addOptionUrl;
- var optionList = $("#optionForm").serialize(true);
+ var contentFolderID= $("#contentFolderID").val();
prepareFCKEditorsForAjaxSubmit();
+ var optionList = $("#optionForm").serialize(true);
$(optionTargetDiv).load(
url,
{
+ contentFolderID: contentFolderID,
questionType: questionType,
optionList: optionList
}
);
}
function removeOption(idx){
var url= removeOptionUrl;
+ var contentFolderID= $("#contentFolderID").val();
+ prepareFCKEditorsForAjaxSubmit();
var optionList = $("#optionForm").serialize(true);
$(optionTargetDiv).load(
url,
{
+ contentFolderID: contentFolderID,
questionType: questionType,
optionIndex: idx,
optionList: optionList
@@ -31,10 +36,13 @@
}
function upOption(idx){
var url= upOptionUrl;
+ var contentFolderID= $("#contentFolderID").val();
+ prepareFCKEditorsForAjaxSubmit();
var optionList = $("#optionForm").serialize(true);
$(optionTargetDiv).load(
url,
{
+ contentFolderID: contentFolderID,
questionType: questionType,
optionIndex: idx,
optionList: optionList
@@ -43,20 +51,30 @@
}
function downOption(idx){
var url= downOptionUrl;
+ var contentFolderID= $("#contentFolderID").val();
+ prepareFCKEditorsForAjaxSubmit();
var optionList = $("#optionForm").serialize(true);
$(optionTargetDiv).load(
url,
{
+ contentFolderID: contentFolderID,
questionType: questionType,
optionIndex: idx,
optionList: optionList
}
);
}
function prepareFCKEditorsForAjaxSubmit(){
- //$("input[id^=optionFeedback]").each(function() {
- // this.val(FCKeditorAPI.GetInstance($(this).id).GetXHTML());
- //});
+ if ((questionType == 1) || (questionType == 3) || (questionType == 4)) {
+ $("[name^=optionFeedback]").each(function() {
+ this.value = FCKeditorAPI.GetInstance(this.name).GetXHTML();
+ });
+ }
+ if (questionType == 2) {
+ $("[name^=optionQuestion]").each(function() {
+ this.value = FCKeditorAPI.GetInstance(this.name).GetXHTML();
+ });
+ }
}
Index: lams_tool_assessment/web/pages/authoring/authoring.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/authoring/authoring.jsp,v
diff -u -r1.1 -r1.2
--- lams_tool_assessment/web/pages/authoring/authoring.jsp 29 Jan 2009 05:59:05 -0000 1.1
+++ lams_tool_assessment/web/pages/authoring/authoring.jsp 4 Feb 2009 18:03:05 -0000 1.2
@@ -40,8 +40,8 @@
}
function doUploadOffline() {
- var myForm = $("authoringForm");
- myForm.action = "";
+ var myForm = $("#authoringForm");
+ myForm.attr("action", "");
myForm.submit();
}
Index: lams_tool_assessment/web/pages/authoring/instructions.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_assessment/web/pages/authoring/Attic/instructions.jsp,v
diff -u -r1.1 -r1.2
--- lams_tool_assessment/web/pages/authoring/instructions.jsp 29 Jan 2009 05:59:05 -0000 1.1
+++ lams_tool_assessment/web/pages/authoring/instructions.jsp 4 Feb 2009 18:03:05 -0000 1.2
@@ -1,9 +1,6 @@
<%@ include file="/common/taglibs.jsp"%>
-<%@ page
- import="org.lamsfoundation.lams.contentrepository.client.IToolContentHandler"%>
-
+<%@ page import="org.lamsfoundation.lams.contentrepository.client.IToolContentHandler"%>
+