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