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

OO-3457: only use the latest candidate session in the correction workflow and...

OO-3457: only use the latest candidate session in the correction workflow and don't use a cached one
parent 396d5eb3
No related branches found
No related tags found
No related merge requests found
......@@ -113,7 +113,6 @@ public class IQConfigurationController extends BasicController {
private String type;
private ICourse course;
private List<Identity> learners;
private ModuleConfiguration moduleConfiguration;
private AbstractAccessableCourseNode courseNode;
......@@ -500,7 +499,7 @@ public class IQConfigurationController extends BasicController {
// it exists partly results for this test
List<Identity> identitiesWithQtiSerEntry = iqManager.getIdentitiesWithQtiSerEntry(course.getResourceableId(), courseNode.getIdent());
if(passed || !identitiesWithQtiSerEntry.isEmpty()) {
learners = new ArrayList<>();
List<Identity> learners = new ArrayList<>();
for(QTIResult result : results) {
Identity identity = result.getResultSet().getIdentity();
if(identity != null && !learners.contains(identity)){
......
......@@ -238,7 +238,7 @@ public class QTI21IdentityListCourseNodeToolsController extends AbstractToolsCon
testSessionStates.put(assessedIdentity, testSessionState);
CorrectionOverviewModel model = new CorrectionOverviewModel(courseEntry, testCourseNode.getIdent(), testEntry,
resolvedAssessmentTest, manifestBuilder, lastSessionMap, testSessionStates);
correctionCtrl = new CorrectionIdentityAssessmentItemListController(ureq, getWindowControl(), stackPanel, model, lastSession, assessedIdentity);
correctionCtrl = new CorrectionIdentityAssessmentItemListController(ureq, getWindowControl(), stackPanel, model, assessedIdentity);
listenTo(correctionCtrl);
stackPanel.pushController(translate("tool.correction"), correctionCtrl);
}
......
......@@ -369,7 +369,7 @@ public class QTI21AssessmentDetailsController extends FormBasicController {
testSessionStates.put(assessedIdentity, testSessionState);
CorrectionOverviewModel model = new CorrectionOverviewModel(entry, subIdent, testEntry,
resolvedAssessmentTest, manifestBuilder, lastSessions, testSessionStates);
correctionCtrl = new CorrectionIdentityAssessmentItemListController(ureq, getWindowControl(), stackPanel, model, session, assessedIdentity);
correctionCtrl = new CorrectionIdentityAssessmentItemListController(ureq, getWindowControl(), stackPanel, model, assessedIdentity);
listenTo(correctionCtrl);
stackPanel.pushController(translate("correction"), correctionCtrl);
}
......
......@@ -108,7 +108,6 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
private final boolean saveEnabled;
private final Identity assessedIdentity;
private final CorrectionOverviewModel model;
private AssessmentTestSession candidateSession;
@Autowired
private QTI21Service qtiService;
......@@ -116,13 +115,12 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
private UserManager userManager;
public CorrectionIdentityAssessmentItemListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel,
CorrectionOverviewModel model, AssessmentTestSession candidateSession, Identity assessedIdentity) {
CorrectionOverviewModel model, Identity assessedIdentity) {
super(ureq, wControl, "correction_identity_assessment_item_list");
this.stackPanel = stackPanel;
this.model = model;
this.assessedIdentity = assessedIdentity;
this.candidateSession = candidateSession;
saveEnabled = true;
title = userManager.getUserDisplayName(assessedIdentity);
......@@ -137,7 +135,6 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
this.model = model;
this.title = title;
this.assessedIdentity = assessedIdentity;
candidateSession = model.getLastSessions().get(assessedIdentity);
saveEnabled = false;
initForm(ureq);
......@@ -145,7 +142,7 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
}
public AssessmentTestSession getAssessmentTestSession() {
return candidateSession;
return model.getLastSessions().get(assessedIdentity);
}
@Override
......@@ -188,6 +185,7 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
identifierToRefs.put(itemRef.getIdentifier(), itemRef);
}
AssessmentTestSession candidateSession = getAssessmentTestSession();
List<AssessmentItemSession> allItemSessions = qtiService.getAssessmentItemSessions(candidateSession);
Map<String, AssessmentItemSession> identifierToItemSessions = new HashMap<>();
for(AssessmentItemSession itemSession:allItemSessions) {
......@@ -285,6 +283,7 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
}
}
} else if(saveButton == source) {
AssessmentTestSession candidateSession = getAssessmentTestSession();
List<AssessmentTestSession> sessions = Collections.singletonList(candidateSession);
AssessmentTest assessmentTest = model.getResolvedAssessmentTest().getRootNodeLookup().extractIfSuccessful();
fireEvent(ureq, new CompleteAssessmentTestSessionEvent(sessions, assessmentTest, AssessmentEntryStatus.done));
......@@ -297,6 +296,7 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
doUnlock();
AssessmentItemRef itemRef = row.getItemRef();
AssessmentTestSession candidateSession = getAssessmentTestSession();
TestSessionState testSessionState = qtiService.loadTestSessionState(candidateSession);
List<TestPlanNode> nodes = testSessionState.getTestPlan().getNodes(itemRef.getIdentifier());
......
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