diff --git a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java index d25a52f24ebf9d6b92ea5c8b553b7eaf75f06acc..aafd861e08b31df23e5dfdc3298df25de6b7f1dc 100644 --- a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java @@ -89,6 +89,7 @@ import org.olat.repository.RepositoryEntryImportExport; import org.olat.repository.RepositoryManager; import org.olat.repository.handlers.RepositoryHandler; import org.olat.repository.handlers.RepositoryHandlerFactory; +import org.olat.resource.OLATResource; /** * Initial Date: Feb 9, 2004 @@ -132,20 +133,17 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) { Controller runController; - ModuleConfiguration config = getModuleConfiguration(); - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - boolean onyx = IQEditController.CONFIG_VALUE_QTI2.equals(config.get(IQEditController.CONFIG_KEY_TYPE_QTI)); - if (onyx) { + RepositoryEntry testEntry = getReferencedRepositoryEntry(); + OLATResource ores = testEntry.getOlatResource(); + if (QTIResourceTypeModule.isOnyxTest(ores)) { Translator trans = Util.createPackageTranslator(IQEditController.class, ureq.getLocale()); runController = MessageUIFactory.createInfoMessage(ureq, wControl, "", trans.translate("error.onyx")); + } else if(ImsQTI21Resource.TYPE_NAME.equals(ores.getResourceableTypeName())) { + runController = new QTI21AssessmentRunController(ureq, wControl, userCourseEnv, this); } else { - RepositoryEntry testEntry = getReferencedRepositoryEntry(); - if(ImsQTI21Resource.TYPE_NAME.equals(testEntry.getOlatResource().getResourceableTypeName())) { - runController = new QTI21AssessmentRunController(ureq, wControl, userCourseEnv, this); - } else { - IQSecurityCallback sec = new CourseIQSecurityCallback(this, am, ureq.getIdentity()); - runController = new IQRunController(userCourseEnv, getModuleConfiguration(), sec, ureq, wControl, this); - } + AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); + IQSecurityCallback sec = new CourseIQSecurityCallback(this, am, ureq.getIdentity()); + runController = new IQRunController(userCourseEnv, getModuleConfiguration(), sec, ureq, wControl, this); } Controller ctrl = TitledWrapperHelper.getWrapper(ureq, wControl, runController, this, "o_iqself_icon"); @@ -379,7 +377,7 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se .getLastAssessmentTestSessions(courseEntry, getIdent(), referencedRepositoryEntry, assessedIdentity); if(testSession != null) { boolean fullyAssessed = (testSession.getFinishTime() != null || testSession.getTerminationTime() != null); - Float score = testSession.getScore().floatValue(); + Float score = testSession.getScore() == null ? null : testSession.getScore().floatValue(); return new ScoreEvaluation(score, testSession.getPassed(), fullyAssessed, testSession.getKey()); } } else { diff --git a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java index 284f6fbdbc9f87a588856956a687d496c178ad3e..a2726385d4f19399ae267d8b8aa0b12959eb6063 100644 --- a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java @@ -57,6 +57,7 @@ import org.olat.course.editor.StatusDescription; import org.olat.course.nodes.iq.CourseIQSecurityCallback; import org.olat.course.nodes.iq.IQEditController; import org.olat.course.nodes.iq.IQRunController; +import org.olat.course.nodes.iq.QTIResourceTypeModule; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.NodeEvaluation; @@ -139,14 +140,12 @@ public class IQSURVCourseNode extends AbstractAccessableCourseNode implements QT String message = trans.translate("guestnoaccess.message"); controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); } else { - ModuleConfiguration config = getModuleConfiguration(); - boolean onyx = IQEditController.CONFIG_VALUE_QTI2.equals(config.get(IQEditController.CONFIG_KEY_TYPE_QTI)); - if (onyx) { + RepositoryEntry repositoryEntry = getReferencedRepositoryEntry(); + OLATResourceable ores = repositoryEntry.getOlatResource(); + if (QTIResourceTypeModule.isOnyxTest(ores)) { Translator trans = Util.createPackageTranslator(IQEditController.class, ureq.getLocale()); controller = MessageUIFactory.createInfoMessage(ureq, wControl, "", trans.translate("error.onyx")); } else { - RepositoryEntry repositoryEntry = getReferencedRepositoryEntry(); - OLATResourceable ores = repositoryEntry.getOlatResource(); Long resId = ores.getResourceableId(); SurveyFileResource fr = new SurveyFileResource(); fr.overrideResourceableId(resId); diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java index a389d0e19e11733fb7c171ae37e6691ae6a5e17e..61fd99931a000ec124c55a8c3d639295b0e31080 100644 --- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java @@ -173,30 +173,26 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements Pe controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); } } else { - ModuleConfiguration config = getModuleConfiguration(); - boolean onyx = IQEditController.CONFIG_VALUE_QTI2.equals(config.get(IQEditController.CONFIG_KEY_TYPE_QTI)); - if (onyx) { + RepositoryEntry testEntry = getReferencedRepositoryEntry(); + OLATResource ores = testEntry.getOlatResource(); + if(ImsQTI21Resource.TYPE_NAME.equals(ores.getResourceableTypeName())) { + //QTI 2.1 + controller = new QTI21AssessmentRunController(ureq, wControl, userCourseEnv, this); + } else if(QTIResourceTypeModule.isOnyxTest(ores)) { Translator transe = Util.createPackageTranslator(IQEditController.class, ureq.getLocale()); controller = MessageUIFactory.createInfoMessage(ureq, wControl, "", transe.translate("error.onyx")); } else { - RepositoryEntry testEntry = getReferencedRepositoryEntry(); - OLATResource ores = testEntry.getOlatResource(); - if(ImsQTI21Resource.TYPE_NAME.equals(ores.getResourceableTypeName())) { - //QTI 2.1 - controller = new QTI21AssessmentRunController(ureq, wControl, userCourseEnv, this); + //QTI 1.2 + TestFileResource fr = new TestFileResource(); + fr.overrideResourceableId(ores.getResourceableId()); + if(!CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(fr, null)) { + AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); + IQSecurityCallback sec = new CourseIQSecurityCallback(this, am, ureq.getIdentity()); + controller = new IQRunController(userCourseEnv, getModuleConfiguration(), sec, ureq, wControl, this, testEntry); } else { - //QTI 1.2 - TestFileResource fr = new TestFileResource(); - fr.overrideResourceableId(ores.getResourceableId()); - if(!CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(fr, null)) { - AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); - IQSecurityCallback sec = new CourseIQSecurityCallback(this, am, ureq.getIdentity()); - controller = new IQRunController(userCourseEnv, getModuleConfiguration(), sec, ureq, wControl, this, testEntry); - } else { - String title = trans.translate("editor.lock.title"); - String message = trans.translate("editor.lock.message"); - controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); - } + String title = trans.translate("editor.lock.title"); + String message = trans.translate("editor.lock.message"); + controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); } } } diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java index 2f4244e681fd8654d7464f6a9d24a0577810defb..a9cd8136382f5f9d68f2abc1d2c71211407fd7ec 100644 --- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java @@ -587,7 +587,7 @@ public class QTI21AssessmentRunController extends BasicController implements Gen if (guiPrefs != null) { guiPrefs.putAndSave(QTI21AssessmentRunController.class, getOpenPanelId(panelId), Boolean.valueOf(newValue)); } - mainVC.contextPut("in-" + panelId, Boolean.valueOf(newValue)); + mainVC.getContext().put("in-" + panelId, Boolean.valueOf(newValue)); } private String getOpenPanelId(String panelId) {