use of org.olat.ims.qti21.ui.AssessmentResultController in project OpenOLAT by OpenOLAT.
the class QTI21ResultsExportMediaResource method createResultDetail.
private List<ResultDetail> createResultDetail(Identity identity, ZipOutputStream zout, String idDir) throws IOException {
List<ResultDetail> assessments = new ArrayList<>();
List<AssessmentTestSession> sessions = qtiService.getAssessmentTestSessions(entry, courseNode.getIdent(), identity);
for (AssessmentTestSession session : sessions) {
Long assessmentID = session.getKey();
String idPath = idDir + translator.translate("table.user.attempt") + (sessions.indexOf(session) + 1) + SEP;
createZipDirectory(zout, idPath);
// content of result table
ResultDetail resultDetail = new ResultDetail(assessmentID.toString(), assessmentDateFormat.format(session.getCreationDate()), displayDateFormat.format(new Date(session.getDuration())), session.getScore(), session.getManualScore(), createPassedIcons(session.getPassed() == null ? true : session.getPassed()), idPath.replace(idDir, "") + assessmentID + ".html");
assessments.add(resultDetail);
// WindowControlMocker needed because this is not a controller
WindowControl mockwControl = new WindowControlMocker();
FileResourceManager frm = FileResourceManager.getInstance();
RepositoryEntry testEntry = session.getTestEntry();
testEntries.add(testEntry);
File fUnzippedDirRoot = frm.unzipFileResource(testEntry.getOlatResource());
// add test repo key
String mapperUri = "../../../test" + testEntry.getKey() + "/";
String submissionMapperUri = ".";
String exportUri = "../" + translator.translate("table.user.attempt") + (sessions.indexOf(session) + 1);
Controller assessmentResultController = new AssessmentResultController(ureq, mockwControl, identity, false, session, fUnzippedDirRoot, mapperUri, submissionMapperUri, QTI21AssessmentResultsOptions.allOptions(), false, true, false, exportUri);
Component component = assessmentResultController.getInitialComponent();
String componentHTML = createResultHTML(component);
convertToZipEntry(zout, idPath + assessmentID + ".html", componentHTML);
File resultXML = qtiService.getAssessmentResultFile(session);
convertToZipEntry(zout, idPath + assessmentID + ".xml", resultXML);
File signatureXML = qtiService.getAssessmentResultSignature(session);
if (signatureXML != null) {
convertToZipEntry(zout, idPath + "assessmentResultSignature.xml", signatureXML);
}
File submissionDir = qtiService.getSubmissionDirectory(session);
String baseDir = idPath + "submissions";
ZipUtil.addDirectoryToZip(submissionDir.toPath(), baseDir, zout);
}
return assessments;
}
use of org.olat.ims.qti21.ui.AssessmentResultController in project OpenOLAT by OpenOLAT.
the class AssessmentResultController method doPrint.
private void doPrint(UserRequest ureq) {
ControllerCreator creator = (uureq, wwControl) -> {
AssessmentResultController printViewCtrl = new AssessmentResultController(uureq, wwControl, assessedIdentity, anonym, candidateSession, fUnzippedDirRoot, mapperUri, submissionMapperUri, options, false, true, false);
printViewCtrl.flc.contextPut("printCommand", Boolean.TRUE);
listenTo(printViewCtrl);
return printViewCtrl;
};
openInNewBrowserWindow(ureq, creator);
}
use of org.olat.ims.qti21.ui.AssessmentResultController in project openolat by klemens.
the class QTI21ResultsExportMediaResource method createResultDetail.
private List<ResultDetail> createResultDetail(Identity identity, ZipOutputStream zout, String idDir) throws IOException {
List<ResultDetail> assessments = new ArrayList<>();
List<AssessmentTestSession> sessions = qtiService.getAssessmentTestSessions(entry, courseNode.getIdent(), identity);
for (AssessmentTestSession session : sessions) {
Long assessmentID = session.getKey();
String idPath = idDir + translator.translate("table.user.attempt") + (sessions.indexOf(session) + 1) + SEP;
createZipDirectory(zout, idPath);
// content of result table
ResultDetail resultDetail = new ResultDetail(assessmentID.toString(), assessmentDateFormat.format(session.getCreationDate()), displayDateFormat.format(new Date(session.getDuration())), session.getScore(), session.getManualScore(), createPassedIcons(session.getPassed() == null ? true : session.getPassed()), idPath.replace(idDir, "") + assessmentID + ".html");
assessments.add(resultDetail);
// WindowControlMocker needed because this is not a controller
WindowControl mockwControl = new WindowControlMocker();
FileResourceManager frm = FileResourceManager.getInstance();
RepositoryEntry testEntry = session.getTestEntry();
testEntries.add(testEntry);
File fUnzippedDirRoot = frm.unzipFileResource(testEntry.getOlatResource());
// add test repo key
String mapperUri = "../../../test" + testEntry.getKey() + "/";
String submissionMapperUri = ".";
String exportUri = "../" + translator.translate("table.user.attempt") + (sessions.indexOf(session) + 1);
Controller assessmentResultController = new AssessmentResultController(ureq, mockwControl, identity, false, session, fUnzippedDirRoot, mapperUri, submissionMapperUri, QTI21AssessmentResultsOptions.allOptions(), false, true, false, exportUri);
Component component = assessmentResultController.getInitialComponent();
String componentHTML = createResultHTML(component);
convertToZipEntry(zout, idPath + assessmentID + ".html", componentHTML);
File resultXML = qtiService.getAssessmentResultFile(session);
convertToZipEntry(zout, idPath + assessmentID + ".xml", resultXML);
File signatureXML = qtiService.getAssessmentResultSignature(session);
if (signatureXML != null) {
convertToZipEntry(zout, idPath + "assessmentResultSignature.xml", signatureXML);
}
File submissionDir = qtiService.getSubmissionDirectory(session);
String baseDir = idPath + "submissions";
ZipUtil.addDirectoryToZip(submissionDir.toPath(), baseDir, zout);
}
return assessments;
}
use of org.olat.ims.qti21.ui.AssessmentResultController in project openolat by klemens.
the class QTI21AssessmentRunController method doShowResults.
private void doShowResults(UserRequest ureq) {
removeAsListenerAndDispose(resultCtrl);
AssessmentTestSession session = null;
if (courseNode instanceof SelfAssessableCourseNode) {
RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
session = qtiService.getLastAssessmentTestSessions(courseEntry, courseNode.getIdent(), testEntry, getIdentity());
} else {
AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager();
AssessmentEntry assessmentEntry = am.getAssessmentEntry(courseNode, getIdentity());
if (assessmentEntry.getAssessmentId() != null) {
session = qtiService.getAssessmentTestSession(assessmentEntry.getAssessmentId());
} else {
RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
session = qtiService.getLastAssessmentTestSessions(courseEntry, courseNode.getIdent(), testEntry, getIdentity());
}
}
if (session == null) {
mainVC.contextPut("showResults", Boolean.FALSE);
} else {
FileResourceManager frm = FileResourceManager.getInstance();
File fUnzippedDirRoot = frm.unzipFileResource(session.getTestEntry().getOlatResource());
URI assessmentObjectUri = qtiService.createAssessmentTestUri(fUnzippedDirRoot);
File submissionDir = qtiService.getAssessmentResultFile(session);
String mapperUri = registerCacheableMapper(ureq, "QTI21CNResults::" + session.getTestEntry().getKey(), new ResourcesMapper(assessmentObjectUri, submissionDir));
resultCtrl = new AssessmentResultController(ureq, getWindowControl(), getIdentity(), true, session, fUnzippedDirRoot, mapperUri, null, getDeliveryOptions().getAssessmentResultsOptions(), false, false, true);
listenTo(resultCtrl);
mainVC.put("resultReport", resultCtrl.getInitialComponent());
mainVC.contextPut("showResults", Boolean.TRUE);
}
saveOpenPanel(ureq, "results", Boolean.TRUE);
}
use of org.olat.ims.qti21.ui.AssessmentResultController in project OpenOLAT by OpenOLAT.
the class QTI21AssessmentRunController method doShowResults.
private void doShowResults(UserRequest ureq) {
removeAsListenerAndDispose(resultCtrl);
AssessmentTestSession session = null;
if (courseNode instanceof SelfAssessableCourseNode) {
RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
session = qtiService.getLastAssessmentTestSessions(courseEntry, courseNode.getIdent(), testEntry, getIdentity());
} else {
AssessmentManager am = userCourseEnv.getCourseEnvironment().getAssessmentManager();
AssessmentEntry assessmentEntry = am.getAssessmentEntry(courseNode, getIdentity());
if (assessmentEntry.getAssessmentId() != null) {
session = qtiService.getAssessmentTestSession(assessmentEntry.getAssessmentId());
} else {
RepositoryEntry courseEntry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
session = qtiService.getLastAssessmentTestSessions(courseEntry, courseNode.getIdent(), testEntry, getIdentity());
}
}
if (session == null) {
mainVC.contextPut("showResults", Boolean.FALSE);
} else {
FileResourceManager frm = FileResourceManager.getInstance();
File fUnzippedDirRoot = frm.unzipFileResource(session.getTestEntry().getOlatResource());
URI assessmentObjectUri = qtiService.createAssessmentTestUri(fUnzippedDirRoot);
File submissionDir = qtiService.getAssessmentResultFile(session);
String mapperUri = registerCacheableMapper(ureq, "QTI21CNResults::" + session.getTestEntry().getKey(), new ResourcesMapper(assessmentObjectUri, submissionDir));
resultCtrl = new AssessmentResultController(ureq, getWindowControl(), getIdentity(), true, session, fUnzippedDirRoot, mapperUri, null, getDeliveryOptions().getAssessmentResultsOptions(), false, false, true);
listenTo(resultCtrl);
mainVC.put("resultReport", resultCtrl.getInitialComponent());
mainVC.contextPut("showResults", Boolean.TRUE);
}
saveOpenPanel(ureq, "results", Boolean.TRUE);
}
Aggregations