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

OO-2590: hold all identities

parent 60dc430d
No related branches found
No related tags found
No related merge requests found
......@@ -40,6 +40,7 @@ import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.id.Identity;
import org.olat.course.archiver.ScoreAccountingHelper;
import org.olat.course.nodes.IQTESTCourseNode;
import org.olat.course.run.environment.CourseEnvironment;
import org.olat.fileresource.FileResourceManager;
......@@ -81,13 +82,13 @@ public class IdentitiesAssessmentTestCorrectionController extends BasicControlle
private String subIdent;
private RepositoryEntry testEntry;
private RepositoryEntry courseEntry;
private CourseEnvironment courseEnv;
private AssessmentItemRef currentItemRef;
private final List<AssessmentItemRef> itemRefs;
private final ResolvedAssessmentTest resolvedAssessmentTest;
private final AssessmentTestCorrection testCorrections;
private final Set<Identity> assessedIdentities;
private final Map<Identity,AssessmentTestSession> lastSessions;
@Autowired
......@@ -100,6 +101,7 @@ public class IdentitiesAssessmentTestCorrectionController extends BasicControlle
super(ureq, wControl);
this.asOptions = asOptions;
this.courseEnv = courseEnv;
subIdent = courseNode.getIdent();
testEntry = courseNode.getReferencedRepositoryEntry();
......@@ -109,8 +111,7 @@ public class IdentitiesAssessmentTestCorrectionController extends BasicControlle
.unzipFileResource(testEntry.getOlatResource());
resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(fUnzippedDirRoot, false, false);
assessedIdentities = getAssessedIdentities();
lastSessions = getLastSessions(assessedIdentities);
lastSessions = getLastSessions();
mainVC = createVelocityContainer("corrections");
......@@ -135,7 +136,7 @@ public class IdentitiesAssessmentTestCorrectionController extends BasicControlle
}
public int getNumberOfAssessedIdentities() {
return assessedIdentities == null ? 0 : assessedIdentities.size();
return lastSessions == null ? 0 : lastSessions.size();
}
public AssessmentTestCorrection getTestCorrections() {
......@@ -230,27 +231,23 @@ public class IdentitiesAssessmentTestCorrectionController extends BasicControlle
return corrections;
}
private Set<Identity> getAssessedIdentities() {
List<Identity> identities;
private Map<Identity,AssessmentTestSession> getLastSessions() {
Set<Identity> identitiesSet;
if(asOptions.getGroup() != null) {
identities = businessGroupService.getMembers(asOptions.getGroup(), GroupRoles.participant.name());
List<Identity> identities = businessGroupService.getMembers(asOptions.getGroup(), GroupRoles.participant.name());
identitiesSet = new HashSet<>(identities);
} else if(asOptions.getIdentities() != null) {
identitiesSet = new HashSet<>(asOptions.getIdentities());
} else {
identities = asOptions.getIdentities();
identitiesSet = new HashSet<>(ScoreAccountingHelper.loadUsers(courseEnv));
}
Set<Identity> uniqueIdentities = new HashSet<>();
if(identities != null) {
uniqueIdentities.addAll(identities);
}
return uniqueIdentities;
}
private Map<Identity,AssessmentTestSession> getLastSessions(Set<Identity> identitiesSet) {
List<AssessmentTestSession> sessions = qtiService.getAssessmentTestSessions(courseEntry, subIdent, testEntry);
Map<Identity,AssessmentTestSession> identityToSessions = new HashMap<>();
for(AssessmentTestSession session:sessions) {
//filter last session / user
Identity assessedIdentity = session.getIdentity();
if(!identitiesSet.contains(assessedIdentity)) {
if(identitiesSet != null && !identitiesSet.contains(assessedIdentity)) {
continue;
}
......
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