Index: lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java =================================================================== diff -u -r8794fa416164738d1e1a4954081f6e5e1db00c6b -rc0f4a7e33200e148a97d30cb2091ecea22c3cfc7 --- lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java (.../LdTemplateController.java) (revision 8794fa416164738d1e1a4954081f6e5e1db00c6b) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/LdTemplateController.java (.../LdTemplateController.java) (revision c0f4a7e33200e148a97d30cb2091ecea22c3cfc7) @@ -784,12 +784,13 @@ * to be expanded. */ protected Long createAssessmentToolContent(UserDTO user, String title, String instructions, - String reflectionInstructions, boolean selectLeaderToolOutput, boolean enableNumbering, ArrayNode questions) - throws IOException { + String reflectionInstructions, boolean selectLeaderToolOutput, boolean enableNumbering, + boolean enableConfidenceLevels, ArrayNode questions) throws IOException { ObjectNode toolContentJSON = createStandardToolContent(title, instructions, reflectionInstructions, null, null, user); toolContentJSON.put(RestTags.USE_SELECT_LEADER_TOOL_OUTPUT, selectLeaderToolOutput); + toolContentJSON.put(RestTags.ENABLE_CONFIDENCE_LEVELS, enableConfidenceLevels); toolContentJSON.put("numbered", enableNumbering); toolContentJSON.put("displaySummary", Boolean.TRUE); toolContentJSON.put("allowDiscloseAnswers", Boolean.TRUE); @@ -799,7 +800,7 @@ for (int i = 0; i < questions.size(); i++) { ObjectNode question = (ObjectNode) questions.get(i); Integer questionDisplayOrder = question.get(RestTags.DISPLAY_ORDER).asInt(); - Integer defaultGrade = question.get("defaultGrade").asInt(); + Integer defaultGrade = JsonUtil.optInt(question, "defaultGrade", 1); references.add(JsonNodeFactory.instance.objectNode().put(RestTags.DISPLAY_ORDER, questionDisplayOrder) .put("questionDisplayOrder", questionDisplayOrder).put("defaultGrade", defaultGrade)); } Index: lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/TBLTemplateController.java =================================================================== diff -u -r6f0db409b3114a7999205219d5e23a2f03b1a813 -rc0f4a7e33200e148a97d30cb2091ecea22c3cfc7 --- lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/TBLTemplateController.java (.../TBLTemplateController.java) (revision 6f0db409b3114a7999205219d5e23a2f03b1a813) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/template/web/TBLTemplateController.java (.../TBLTemplateController.java) (revision c0f4a7e33200e148a97d30cb2091ecea22c3cfc7) @@ -148,15 +148,16 @@ activityTitle, activityTitle)); } - // iRA Test - MCQ + // iRA Test - Assessment currentActivityPosition = calcPositionNextRight(currentActivityPosition); activityTitle = data.getText("boilerplate.ira.title"); ArrayNode testQuestionsArray = JsonUtil.readArray(data.testQuestions.values()); - Long iRAToolContentId = createMCQToolContent(userDTO, activityTitle, - data.getText("boilerplate.ira.instructions"), false, data.confidenceLevelEnable, false, + + Long iRAToolContentId = createAssessmentToolContent(userDTO, activityTitle, + data.getText("boilerplate.ira.instructions"), null, false, false, data.confidenceLevelEnable, testQuestionsArray); - ObjectNode iraActivityJSON = createMCQActivity(maxUIID, order++, currentActivityPosition, iRAToolContentId, - data.contentFolderID, groupingUIID, null, null, activityTitle); + ObjectNode iraActivityJSON = createAssessmentActivity(maxUIID, order++, currentActivityPosition, + iRAToolContentId, data.contentFolderID, groupingUIID, null, null, activityTitle); activities.add(iraActivityJSON); // Leader Selection @@ -227,7 +228,7 @@ assessmentNumber++; } Long aetoolContentId = createAssessmentToolContent(userDTO, applicationExerciseTitle, - data.getText("boilerplate.ae.instructions"), null, true, false, questionsJSONArray); + data.getText("boilerplate.ae.instructions"), null, true, false, false, questionsJSONArray); activities.add(createAssessmentActivity(maxUIID, order++, currentActivityPosition, aetoolContentId, data.contentFolderID, groupingUIID, null, null, applicationExerciseTitle)); @@ -635,6 +636,7 @@ ObjectNode question = testQuestions.get(questionDisplayOrder); if (question == null) { question = JsonNodeFactory.instance.objectNode(); + question.put("type", Assessment.ASSESSMENT_QUESTION_TYPE_MULTIPLE_CHOICE); question.set(RestTags.ANSWERS, JsonNodeFactory.instance.arrayNode()); question.put(RestTags.DISPLAY_ORDER, questionDisplayOrder); testQuestions.put(questionDisplayOrder, question); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -rb9300513239d652c59e3bfd190d0973295844f37 -rc0f4a7e33200e148a97d30cb2091ecea22c3cfc7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision b9300513239d652c59e3bfd190d0973295844f37) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision c0f4a7e33200e148a97d30cb2091ecea22c3cfc7) @@ -3397,6 +3397,8 @@ JsonUtil.optBoolean(toolContentJSON, "allowRightAnswersAfterQuestion", Boolean.FALSE)); assessment.setAllowWrongAnswersAfterQuestion( JsonUtil.optBoolean(toolContentJSON, "allowWrongAnswersAfterQuestion", Boolean.FALSE)); + assessment.setEnableConfidenceLevels( + JsonUtil.optBoolean(toolContentJSON, RestTags.ENABLE_CONFIDENCE_LEVELS, Boolean.FALSE)); assessment.setAttemptsAllowed(JsonUtil.optInt(toolContentJSON, "attemptsAllows", 1)); assessment.setDefineLater(false); assessment.setDisplaySummary(JsonUtil.optBoolean(toolContentJSON, "displaySummary", Boolean.FALSE)); @@ -3497,8 +3499,13 @@ QbOption option = new QbOption(); option.setQbQuestion(qbQuestion); option.setDisplayOrder(JsonUtil.optInt(answerData, RestTags.DISPLAY_ORDER)); - Double grade = JsonUtil.optDouble(answerData, "grade"); - option.setMaxMark(grade == null ? 0 : grade.floatValue()); + Boolean correct = JsonUtil.optBoolean(answerData, RestTags.CORRECT, null); + if (correct == null) { + Double grade = JsonUtil.optDouble(answerData, "grade"); + option.setMaxMark(grade == null ? 0 : grade.floatValue()); + } else { + option.setMaxMark(correct ? 1 : 0); + } option.setAcceptedError(JsonUtil.optDouble(answerData, "acceptedError", 0.0).floatValue()); option.setFeedback(JsonUtil.optString(answerData, "feedback")); option.setName(JsonUtil.optString(answerData, RestTags.ANSWER_TEXT));