Skip to content
Snippets Groups Projects
Commit 6fbbd9b9 authored by User expired's avatar User expired
Browse files

Merge remote-tracking branch 'upstream/OpenOLAT_15.1' into OpenOLAT_15.1.uibk

parents 70f9e883 bd1097ae
No related branches found
No related tags found
Loading
......@@ -70,9 +70,9 @@ import org.olat.ims.qti21.AssessmentItemSession;
import org.olat.ims.qti21.AssessmentResponse;
import org.olat.ims.qti21.AssessmentTestSession;
import org.olat.ims.qti21.QTI21Service;
import org.olat.ims.qti21.manager.AssessmentItemSessionDAO;
import org.olat.ims.qti21.manager.AssessmentResponseDAO;
import org.olat.ims.qti21.manager.AssessmentTestSessionDAO;
import org.olat.ims.qti21.manager.QTI21ServiceImpl;
import org.olat.ims.qti21.manager.archive.interactions.AssociateInteractionArchive;
import org.olat.ims.qti21.manager.archive.interactions.ChoiceInteractionArchive;
import org.olat.ims.qti21.manager.archive.interactions.DefaultInteractionArchive;
......@@ -99,6 +99,7 @@ import org.olat.modules.assessment.AssessmentEntry;
import org.olat.repository.RepositoryEntry;
import org.olat.user.UserManager;
import org.olat.user.propertyhandlers.UserPropertyHandler;
import org.springframework.beans.factory.annotation.Autowired;
import uk.ac.ed.ph.jqtiplus.node.item.AssessmentItem;
import uk.ac.ed.ph.jqtiplus.node.item.interaction.AssociateInteraction;
......@@ -156,13 +157,22 @@ public class QTI21ArchiveFormat {
private List<AbstractInfos> elementInfos;
private final Map<String, InteractionArchive> interactionArchiveMap = new HashMap<>();
private final QTI21Service qtiService;
private final UserManager userManager;
private final AssessmentResponseDAO responseDao;
private final AssessmentTestSessionDAO testSessionDao;
private final CourseAssessmentService courseAssessmentService;
@Autowired
private QTI21Service qtiService;
@Autowired
private UserManager userManager;
@Autowired
private AssessmentResponseDAO responseDao;
@Autowired
private AssessmentTestSessionDAO testSessionDao;
@Autowired
private AssessmentItemSessionDAO itemSessionDao;
@Autowired
private CourseAssessmentService courseAssessmentService;
public QTI21ArchiveFormat(Locale locale, QTI21StatisticSearchParams searchParams) {
CoreSpringFactory.autowireObject(this);
this.searchParams = searchParams;
if(searchParams.getArchiveOptions() == null || searchParams.getArchiveOptions().getExportFormat() == null) {
exportConfig = new ExportFormat(true, true, true, true, true);
......@@ -170,12 +180,6 @@ public class QTI21ArchiveFormat {
exportConfig = searchParams.getArchiveOptions().getExportFormat();
}
userManager = CoreSpringFactory.getImpl(UserManager.class);
qtiService = CoreSpringFactory.getImpl(QTI21ServiceImpl.class);
responseDao = CoreSpringFactory.getImpl(AssessmentResponseDAO.class);
testSessionDao = CoreSpringFactory.getImpl(AssessmentTestSessionDAO.class);
courseAssessmentService = CoreSpringFactory.getImpl(CourseAssessmentService.class);
userPropertyHandlers = userManager.getUserPropertyHandlersFor(QTIArchiver.TEST_USER_PROPERTIES, true);
translator = Util.createPackageTranslator(QTI21RuntimeController.class, locale);
......@@ -471,11 +475,16 @@ public class QTI21ArchiveFormat {
AssessmentTestSession testSession = sessions.get(i);
SessionResponses sessionResponses = new SessionResponses(testSession);
List<AssessmentResponse> responses = responseDao.getResponses(testSession);
for(AssessmentResponse response:responses) {
AssessmentItemSession itemSession = response.getAssessmentItemSession();
sessionResponses.addResponse(itemSession, response);
}
List<AssessmentItemSession> itemSessions = itemSessionDao.getAssessmentItemSessions(testSession);
for(AssessmentItemSession itemSession:itemSessions) {
sessionResponses.addItemSession(itemSession);
}
writeDataRow(i + 1, sessionResponses, exportSheet, workbook);
DBFactory.getInstance().commitAndCloseSession();
}
......@@ -726,11 +735,13 @@ public class QTI21ArchiveFormat {
public void addResponse(AssessmentItemSession itemSession, AssessmentResponse response) {
String itemIdentifier = itemSession.getAssessmentItemIdentifier();
if(!itemSessionsMap.containsKey(itemIdentifier)) {
itemSessionsMap.put(itemIdentifier, itemSession);
responsesMap.put(itemIdentifier, new ArrayList<>(5));
}
responsesMap.get(itemIdentifier).add(response);
itemSessionsMap.putIfAbsent(itemIdentifier, itemSession);
responsesMap.computeIfAbsent(itemIdentifier, id -> new ArrayList<>(5))
.add(response);
}
public void addItemSession(AssessmentItemSession itemSession) {
itemSessionsMap.put(itemSession.getAssessmentItemIdentifier(), itemSession);
}
public AssessmentItemSession getItemSession(String itemIdentifier) {
......
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