From ef8cbfcd62579f7610ef038f98388980bbcb3974 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 17 Jan 2020 10:08:34 +0100 Subject: [PATCH] OO-4473: show error message in QTI statistics if question is missing --- .../ui/statistics/QTI21StatisticResourceResult.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticResourceResult.java b/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticResourceResult.java index f28262382cd..c10e0cc35be 100644 --- a/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticResourceResult.java +++ b/src/main/java/org/olat/ims/qti21/ui/statistics/QTI21StatisticResourceResult.java @@ -33,6 +33,9 @@ import org.olat.core.gui.components.tree.TreeModel; import org.olat.core.gui.components.tree.TreeNode; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.messages.MessageUIFactory; +import org.olat.core.gui.translator.Translator; +import org.olat.core.util.Util; import org.olat.course.nodes.CourseNodeConfiguration; import org.olat.course.nodes.CourseNodeFactory; import org.olat.course.nodes.QTICourseNode; @@ -47,6 +50,7 @@ import org.olat.ims.qti21.QTI21StatisticsManager; import org.olat.ims.qti21.model.QTI21QuestionType; import org.olat.ims.qti21.model.QTI21StatisticSearchParams; import org.olat.ims.qti21.model.xml.QtiNodesExtractor; +import org.olat.ims.qti21.ui.AssessmentTestDisplayController; import org.olat.repository.RepositoryEntry; import uk.ac.ed.ph.jqtiplus.node.item.AssessmentItem; @@ -359,6 +363,12 @@ public class QTI21StatisticResourceResult implements StatisticResourceResult { private Controller createAssessmentItemController(UserRequest ureq, WindowControl wControl, AssessmentItemRef assessmentItemRef, String sectionTitle, boolean printMode) { ResolvedAssessmentItem resolvedAssessmentItem = resolvedAssessmentTest.getResolvedAssessmentItem(assessmentItemRef); + if(resolvedAssessmentItem == null || resolvedAssessmentItem.getItemLookup() == null) { + Translator translator = Util.createPackageTranslator(AssessmentTestDisplayController.class, ureq.getLocale()); + String text = translator.translate("error.assessment.item.missing"); + Controller errorCtrl = MessageUIFactory.createErrorMessage(ureq, wControl, "", text); + return TitledWrapperHelper.getWrapper(ureq, wControl, errorCtrl, courseNode, "o_icon_error"); + } Controller ctrl = new QTI21AssessmentItemStatisticsController(ureq, wControl, assessmentItemRef, resolvedAssessmentItem, sectionTitle, this, withFilter, printMode); -- GitLab