From 16308813f0eb0b534bad12d8bc82928a87894af0 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 19 Oct 2015 09:35:30 +0200 Subject: [PATCH] OO-1728: show a message instead of a red screen if the test in the course element is not defined --- .../nodes/iq/IQControllerCreatorOlat.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java b/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java index 84d29418f8c..175e6addccc 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java +++ b/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java @@ -118,8 +118,8 @@ public class IQControllerCreatorOlat implements IQControllerCreator { Controller controller; // Do not allow guests to start tests Roles roles = ureq.getUserSession().getRoles(); - Translator trans = Util.createPackageTranslator(IQTESTCourseNode.class, ureq.getLocale()); if (roles.isGuestOnly()) { + Translator trans = Util.createPackageTranslator(IQTESTCourseNode.class, ureq.getLocale()); String title = trans.translate("guestnoaccess.title"); String message = trans.translate("guestnoaccess.message"); controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); @@ -132,17 +132,25 @@ public class IQControllerCreatorOlat implements IQControllerCreator { AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); IQSecurityCallback sec = new CourseIQSecurityCallback(courseNode, am, ureq.getIdentity()); RepositoryEntry repositoryEntry = courseNode.getReferencedRepositoryEntry(); - OLATResourceable ores = repositoryEntry.getOlatResource(); - Long resId = ores.getResourceableId(); - TestFileResource fr = new TestFileResource(); - fr.overrideResourceableId(resId); - if(!CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(fr, null)) { - //QTI1 - controller = new IQRunController(userCourseEnv, courseNode.getModuleConfiguration(), sec, ureq, wControl, courseNode); - } else { - String title = trans.translate("editor.lock.title"); - String message = trans.translate("editor.lock.message"); + if(repositoryEntry == null) { + Translator trans = Util.createPackageTranslator(IQControllerCreatorOlat.class, ureq.getLocale()); + String title = trans.translate("error.test.undefined.short", new String[]{ courseNode.getShortTitle() }); + String message = trans.translate("error.test.undefined.long", new String[]{ courseNode.getShortTitle() }); controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); + } else { + OLATResourceable ores = repositoryEntry.getOlatResource(); + Long resId = ores.getResourceableId(); + TestFileResource fr = new TestFileResource(); + fr.overrideResourceableId(resId); + if(!CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(fr, null)) { + //QTI1 + controller = new IQRunController(userCourseEnv, courseNode.getModuleConfiguration(), sec, ureq, wControl, courseNode); + } else { + Translator trans = Util.createPackageTranslator(IQTESTCourseNode.class, ureq.getLocale()); + String title = trans.translate("editor.lock.title"); + String message = trans.translate("editor.lock.message"); + controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); + } } } } -- GitLab