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

OO-3396: make the QTI 1.2 results export resilient to missing result XML of a...

OO-3396: make the QTI 1.2 results export resilient to missing result XML of a particular participant
parent af93d5c7
No related branches found
No related tags found
No related merge requests found
......@@ -190,7 +190,7 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
}
private List<AssessedMember> createAssessedMembersDetail (ZipOutputStream zout) throws IOException {
List<AssessedMember> assessedMembers = new ArrayList<AssessedMember>();
List<AssessedMember> assessedMembers = new ArrayList<>();
for (Identity identity : identities) {
String idDir = exportFolderName + "/" + DATA + identity.getName();
......@@ -313,22 +313,27 @@ public class QTI12ResultsExportMediaResource implements MediaResource {
private String createHTMLfromQTIResultSet(String idPath, String idDir, ZipOutputStream zout,
Identity assessedIdentity, QTIResultSet resultSet) throws IOException {
Document doc = FilePersister.retreiveResultsReporting(assessedIdentity,
AssessmentInstance.QMD_ENTRY_TYPE_ASSESS, resultSet.getAssessmentID());
if (doc == null) {
try {
Document doc = FilePersister.retreiveResultsReporting(assessedIdentity,
AssessmentInstance.QMD_ENTRY_TYPE_ASSESS, resultSet.getAssessmentID());
if (doc == null) {
return "null";
}
File resourceXML = retrieveXML(assessedIdentity, resultSet.getAssessmentID());
String resultsHTML = LocalizedXSLTransformer.getInstance(locale).renderResults(doc);
resultsHTML = createResultHTML(resultsHTML);
String html = idPath + resultSet.getAssessmentID() + ".html";
String xml = html.replace(".html", ".xml");
convertToZipEntry(zout, html, resultsHTML);
convertToZipEntry(zout, xml, resourceXML);
return idPath.replace(idDir, "") + resultSet.getAssessmentID() + ".html";
} catch (Exception e) {
log.error("", e);
return "null";
}
File resourceXML = retrieveXML(assessedIdentity, resultSet.getAssessmentID());
String resultsHTML = LocalizedXSLTransformer.getInstance(locale).renderResults(doc);
resultsHTML = createResultHTML(resultsHTML);
String html = idPath + resultSet.getAssessmentID() + ".html";
String xml = html.replace(".html", ".xml");
convertToZipEntry(zout, html, resultsHTML);
convertToZipEntry(zout, xml, resourceXML);
return idPath.replace(idDir, "") + resultSet.getAssessmentID() + ".html";
}
private void fsToZip(ZipOutputStream zout, final Path sourceFolder, final String targetPath) throws IOException {
......
......@@ -60,7 +60,7 @@
<td>$assessment.duration</td>
<td>$assessment.score</td>
<td>$assessment.passed</td>
<td><span class="btn btn-default btn-sm">$t.translate("button.show")</span></td>
<td>#if($assessment.link == "null") Missing data #else<span class="btn btn-default btn-sm">$t.translate("button.show")</span>#end</td>
</tr>
#end
</tbody>
......
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