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

Merge remote-tracking branch 'origin/OpenOLAT_12.5' into OpenOLAT_14.0

parents 16af482d 823d8693
No related branches found
No related tags found
No related merge requests found
......@@ -558,7 +558,7 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
FileResourceManager frm = FileResourceManager.getInstance();
File fUnzippedDirRoot = frm.unzipFileResource(session.getTestEntry().getOlatResource());
URI assessmentObjectUri = qtiService.createAssessmentTestUri(fUnzippedDirRoot);
File submissionDir = qtiService.getAssessmentResultFile(session);
File submissionDir = qtiService.getSubmissionDirectory(session);
String mapperUri = registerCacheableMapper(ureq, "QTI21CNResults::" + session.getTestEntry().getKey(),
new ResourcesMapper(assessmentObjectUri, submissionDir));
......
......@@ -44,6 +44,7 @@ import org.olat.core.util.StringHelper;
public class ResourcesMapper implements Mapper {
private static final Logger log = Tracing.createLoggerFor(ResourcesMapper.class);
private static final String SUBMISSION_SUBPATH = "submissions/";
private final URI assessmentObjectUri;
private final File submissionDirectory;
......@@ -92,14 +93,15 @@ public class ResourcesMapper implements Mapper {
} else {
resource = new ForbiddenMediaResource();
}
} else if(filename.endsWith("/raw/_noversion_/images/transparent.gif")) {
} else if(filename != null && filename.endsWith("/raw/_noversion_/images/transparent.gif")) {
String realPath = request.getServletContext().getRealPath("/static/images/transparent.gif");
resource = new FileMediaResource(new File(realPath), true);
} else {
String submissionName = null;
File storage = null;
if(filename.startsWith("submissions/")) {
String submission = filename.substring("submissions/".length());
if(filename != null && filename.contains(SUBMISSION_SUBPATH)) {
int submissionIndex = filename.indexOf(SUBMISSION_SUBPATH) + SUBMISSION_SUBPATH.length();
String submission = filename.substring(submissionIndex);
int candidateSessionIndex = submission.indexOf('/');
if(candidateSessionIndex > 0) {
submissionName = submission.substring(candidateSessionIndex + 1);
......@@ -109,7 +111,7 @@ public class ResourcesMapper implements Mapper {
String sessionKey = submission.substring(0, candidateSessionIndex);
if(StringHelper.isLong(sessionKey)) {
try {
storage = submissionDirectoryMaps.get(new Long(sessionKey));
storage = submissionDirectoryMaps.get(Long.valueOf(sessionKey));
} catch (Exception e) {
log.error("", e);
}
......
......@@ -194,7 +194,7 @@ public class AssessmentObjectVelocityRenderDecorator extends VelocityRenderDecor
}
public String convertSubmissionLinkFull(String uri) {
return AssessmentRenderFunctions.convertSubmissionLink(avc, resolvedAssessmentItem, uri);
return AssessmentRenderFunctions.convertSubmissionLink(avc, uri);
}
public String getFormDispatchFieldId() {
......
......@@ -661,10 +661,9 @@ public class AssessmentRenderFunctions {
return component.getMapperUri() + "/" + relativePath + "?href=" + relativePath;
}
public static final String convertSubmissionLink(AssessmentObjectComponent component, ResolvedAssessmentItem resolvedAssessmentItem, String uri) {
public static final String convertSubmissionLink(AssessmentObjectComponent component, String uri) {
String filename = getLinkFilename(uri);
String relativePath = component.relativePathTo(resolvedAssessmentItem);
return component.getSubmissionMapperUri() + "/submissions/" + filename + "?href=" + relativePath + (uri == null ? "" : uri);
return component.getSubmissionMapperUri() + "/submissions/" + filename + "?href=" + (uri == null ? "" : uri);
}
private static final String getLinkFilename(String uri) {
......
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