Skip to content
Snippets Groups Projects
Commit 16308813 authored by srosse's avatar srosse
Browse files

OO-1728: show a message instead of a red screen if the test in the course element is not defined

parent da5bec23
No related branches found
No related tags found
No related merge requests found
...@@ -118,8 +118,8 @@ public class IQControllerCreatorOlat implements IQControllerCreator { ...@@ -118,8 +118,8 @@ public class IQControllerCreatorOlat implements IQControllerCreator {
Controller controller; Controller controller;
// Do not allow guests to start tests // Do not allow guests to start tests
Roles roles = ureq.getUserSession().getRoles(); Roles roles = ureq.getUserSession().getRoles();
Translator trans = Util.createPackageTranslator(IQTESTCourseNode.class, ureq.getLocale());
if (roles.isGuestOnly()) { if (roles.isGuestOnly()) {
Translator trans = Util.createPackageTranslator(IQTESTCourseNode.class, ureq.getLocale());
String title = trans.translate("guestnoaccess.title"); String title = trans.translate("guestnoaccess.title");
String message = trans.translate("guestnoaccess.message"); String message = trans.translate("guestnoaccess.message");
controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message);
...@@ -132,17 +132,25 @@ public class IQControllerCreatorOlat implements IQControllerCreator { ...@@ -132,17 +132,25 @@ public class IQControllerCreatorOlat implements IQControllerCreator {
AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager(); AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager();
IQSecurityCallback sec = new CourseIQSecurityCallback(courseNode, am, ureq.getIdentity()); IQSecurityCallback sec = new CourseIQSecurityCallback(courseNode, am, ureq.getIdentity());
RepositoryEntry repositoryEntry = courseNode.getReferencedRepositoryEntry(); RepositoryEntry repositoryEntry = courseNode.getReferencedRepositoryEntry();
OLATResourceable ores = repositoryEntry.getOlatResource(); if(repositoryEntry == null) {
Long resId = ores.getResourceableId(); Translator trans = Util.createPackageTranslator(IQControllerCreatorOlat.class, ureq.getLocale());
TestFileResource fr = new TestFileResource(); String title = trans.translate("error.test.undefined.short", new String[]{ courseNode.getShortTitle() });
fr.overrideResourceableId(resId); String message = trans.translate("error.test.undefined.long", new String[]{ courseNode.getShortTitle() });
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");
controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message); 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);
}
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment