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

OO-5048: harden course and correction workflow against corrupted item

parent ad01642b
No related branches found
No related tags found
No related merge requests found
...@@ -117,6 +117,8 @@ public enum QTI21QuestionType { ...@@ -117,6 +117,8 @@ public enum QTI21QuestionType {
} }
public static QTI21QuestionType getTypeRelax(AssessmentItem item) { public static QTI21QuestionType getTypeRelax(AssessmentItem item) {
if(item == null) return QTI21QuestionType.unkown;
//we have create this one //we have create this one
List<Interaction> interactions = item.getItemBody().findInteractions(); List<Interaction> interactions = item.getItemBody().findInteractions();
......
...@@ -73,7 +73,7 @@ public class QtiMaxScoreEstimator { ...@@ -73,7 +73,7 @@ public class QtiMaxScoreEstimator {
} else if(sectionPart instanceof AssessmentItemRef) { } else if(sectionPart instanceof AssessmentItemRef) {
AssessmentItemRef itemRef = (AssessmentItemRef)sectionPart; AssessmentItemRef itemRef = (AssessmentItemRef)sectionPart;
ResolvedAssessmentItem resolvedAssessmentItem = resolvedAssessmentTest.getResolvedAssessmentItem(itemRef); ResolvedAssessmentItem resolvedAssessmentItem = resolvedAssessmentTest.getResolvedAssessmentItem(itemRef);
AssessmentItem assessmentItem = resolvedAssessmentItem.getRootNodeLookup().extractAssumingSuccessful(); AssessmentItem assessmentItem = resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful();
if(assessmentItem != null) { if(assessmentItem != null) {
Double maxScore = QtiNodesExtractor.extractMaxScore(assessmentItem); Double maxScore = QtiNodesExtractor.extractMaxScore(assessmentItem);
visitor.add(maxScore); visitor.add(maxScore);
......
...@@ -62,7 +62,7 @@ public class CorrectionAssessmentItemRow extends CorrectionRow { ...@@ -62,7 +62,7 @@ public class CorrectionAssessmentItemRow extends CorrectionRow {
} }
public String getItemTitle() { public String getItemTitle() {
return item.getTitle(); return item == null ? "ERROR" : item.getTitle();
} }
public QTI21QuestionType getItemType() { public QTI21QuestionType getItemType() {
......
...@@ -253,6 +253,7 @@ new.sc=Single Choice ...@@ -253,6 +253,7 @@ new.sc=Single Choice
new.section=Sektion new.section=Sektion
new.spots=Spots hinzuf\u00FCgen new.spots=Spots hinzuf\u00FCgen
new.testpart=Test-Part new.testpart=Test-Part
new.unkown=Unbekannt
new.upload=Datei hochladen new.upload=Datei hochladen
passed.cut.value=Automatisch durch Punkteschwelle passed.cut.value=Automatisch durch Punkteschwelle
passed.enabled=Bestanden / Nicht bestanden ausgegeben passed.enabled=Bestanden / Nicht bestanden ausgegeben
......
...@@ -253,6 +253,7 @@ new.sc=Single choice ...@@ -253,6 +253,7 @@ new.sc=Single choice
new.section=Section new.section=Section
new.spots=Add spots new.spots=Add spots
new.testpart=Test part new.testpart=Test part
new.unkown=Unknown
new.upload=Upload file new.upload=Upload file
passed.cut.value=Using cut value passed.cut.value=Using cut value
passed.enabled=Display passed / failed passed.enabled=Display passed / failed
......
...@@ -254,6 +254,7 @@ new.sc=Choix simple ...@@ -254,6 +254,7 @@ new.sc=Choix simple
new.section=Section new.section=Section
new.spots=Ajouter un emplacement new.spots=Ajouter un emplacement
new.testpart=Partie de test new.testpart=Partie de test
new.unkown=Inconnu
new.upload=T\u00E9l\u00E9verser un fichier new.upload=T\u00E9l\u00E9verser un fichier
passed.cut.value=Automatique par score \u00E0 obtenir passed.cut.value=Automatique par score \u00E0 obtenir
passed.enabled=Afficher r\u00E9ussi / pas r\u00E9ussi passed.enabled=Afficher r\u00E9ussi / pas r\u00E9ussi
......
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