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