Index: lams_central/web/includes/javascript/authoring/authoringProperty.js =================================================================== diff -u -r5be40944bddd2480de5d58417669a56c4d051680 -r78f8dc6b716a04f673bb80bc8023436f409be139 --- lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 5be40944bddd2480de5d58417669a56c4d051680) +++ lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 78f8dc6b716a04f673bb80bc8023436f409be139) @@ -1153,7 +1153,7 @@ mappingEntry.condition = { 'name' : this.name, 'displayName' : this.displayName, - 'type' : 'OUTPUT_COMPLEX', + 'type' : this.type, 'conditionID' : this.conditionId, 'toolActivityUIID' : output.toolActivityUIID }; Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r2d20cd764b9f78cf3d349dc62735bcc86d356795 -r78f8dc6b716a04f673bb80bc8023436f409be139 --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 2d20cd764b9f78cf3d349dc62735bcc86d356795) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 78f8dc6b716a04f673bb80bc8023436f409be139) @@ -179,6 +179,7 @@ output.desc.learner.time.taken =Time taken output.desc.learner.number.of.attempts =Number of attempts output.user.score.for.question =Score for the question: +output.ordered.answers.for.question =Ordered answers for the question: 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. Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java =================================================================== diff -u -r373dcc4ea6d1a07c60268ceccd9d1e69d9c35f9c -r78f8dc6b716a04f673bb80bc8023436f409be139 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 373dcc4ea6d1a07c60268ceccd9d1e69d9c35f9c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/AssessmentConstants.java (.../AssessmentConstants.java) (revision 78f8dc6b716a04f673bb80bc8023436f409be139) @@ -257,6 +257,8 @@ public static final String OUTPUT_NAME_BEST_SCORE = "best.score"; public static final String OUTPUT_NAME_FIRST_SCORE = "first.score"; public static final String OUTPUT_NAME_AVERAGE_SCORE = "average.score"; + + public static final String OUTPUT_NAME_ORDERED_ANSWERS = "ordered.answers"; // error message keys public static final String ERROR_MSG_QUESTION_NAME_BLANK = "error.question.name.blank"; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== diff -u -r8d12e38358cf4253f46f914de5fb7630482c9358 -r78f8dc6b716a04f673bb80bc8023436f409be139 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 8d12e38358cf4253f46f914de5fb7630482c9358) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 78f8dc6b716a04f673bb80bc8023436f409be139) @@ -103,7 +103,7 @@ private AssessmentUser createdBy; // Question bank questions - private Set questions; + private Set questions; // assessment questions references that form question list private Set questionReferences; @@ -407,11 +407,11 @@ * * @return */ - public Set getQuestions() { + public Set getQuestions() { return questions; } - public void setQuestions(Set questions) { + public void setQuestions(Set questions) { this.questions = questions; } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java =================================================================== diff -u -r5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d -r78f8dc6b716a04f673bb80bc8023436f409be139 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java (.../AssessmentOutputFactory.java) (revision 5d1d1bc2d08ed13455ca34ceb5ab94e5f918855d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentOutputFactory.java (.../AssessmentOutputFactory.java) (revision 78f8dc6b716a04f673bb80bc8023436f409be139) @@ -23,28 +23,33 @@ package org.lamsfoundation.lams.tool.assessment.service; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import java.util.TreeSet; +import org.lamsfoundation.lams.learningdesign.BranchCondition; import org.lamsfoundation.lams.tool.OutputFactory; import org.lamsfoundation.lams.tool.ToolOutput; import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.tool.assessment.dto.AssessmentUserDTO; import org.lamsfoundation.lams.tool.assessment.model.Assessment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionOption; import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; import org.lamsfoundation.lams.tool.assessment.model.QuestionReference; import org.lamsfoundation.lams.tool.assessment.util.SequencableComparator; +import org.lamsfoundation.lams.util.WebUtil; public class AssessmentOutputFactory extends OutputFactory { /** * @see org.lamsfoundation.lams.tool.OutputDefinitionFactory#getToolOutputDefinitions(java.lang.Object) */ + @SuppressWarnings("unchecked") @Override public SortedMap getToolOutputDefinitions(Object toolContentObject, int definitionType) { @@ -95,9 +100,9 @@ markAvailable = new Long(questionReference.getDefaultGrade()); } - String description = getI18NText("output.user.score.for.question", false); + String description = getI18NText("output.user.score.for.question", false) + " "; if (questionReference.isRandomQuestion()) { - description += getI18NText("label.authoring.basic.type.random.question", false) + " " + description += getI18NText("label.authoring.basic.type.random.question", false) + randomQuestionsCount++; } else { description += questionReference.getQuestion().getTitle(); @@ -108,7 +113,25 @@ definition.setDescription(description); definitionMap.put(String.valueOf(questionReference.getSequenceId()), definition); } - ; + + for (AssessmentQuestion question : assessment.getQuestions()) { + if (question.getType() == AssessmentConstants.QUESTION_TYPE_ORDERING) { + String outputName = AssessmentConstants.OUTPUT_NAME_ORDERED_ANSWERS + "#" + question.getUid(); + ToolOutputDefinition orderedAnswersDefinition = buildLongOutputDefinition(outputName); + orderedAnswersDefinition.setShowConditionNameOnly(true); + orderedAnswersDefinition.setDescription( + getI18NText("output.ordered.answers.for.question", false) + " " + question.getTitle()); + List conditions = new LinkedList(); + orderedAnswersDefinition.setConditions(conditions); + int orderId = 1; + for (AssessmentQuestionOption option : question.getOptions()) { + String value = WebUtil.removeHTMLtags(option.getOptionString()); + conditions.add(new BranchCondition(null, null, orderId++, "ordered.answer#" + option.getUid(), + value, BranchCondition.OUTPUT_TYPE_LONG, null, null, value)); + } + definitionMap.put(outputName, orderedAnswersDefinition); + } + } } return definitionMap;