diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java index b52b867156be4a13f6a2328fba9a5d2e4f925668..0d138927bd3ae61c29abcf170afc65467f8929f6 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java @@ -965,6 +965,7 @@ public class AssessmentTestComposerController extends MainLayoutBasicController if(sectionPart instanceof AssessmentItemRef) { AssessmentItemRef itemRef = (AssessmentItemRef)sectionPart; ResolvedAssessmentItem resolvedAssessmentItem = resolvedAssessmentTest.getResolvedAssessmentItem(itemRef); + checkAndFixAbsolutPath(itemRef); AssessmentItem assessmentItem = null; if(resolvedAssessmentItem != null) { @@ -993,6 +994,19 @@ public class AssessmentTestComposerController extends MainLayoutBasicController } } + private void checkAndFixAbsolutPath(AssessmentItemRef itemRef) { + String href = itemRef.getHref().toString(); + if(href.startsWith("/") && href.contains("/bcroot/repository/") && href.contains("/_unzipped_/")) { + try { + int index = href.indexOf("/_unzipped_/") + ("/_unzipped_/").length(); + String relativeHref = href.substring(index); + itemRef.setHref(new URI(relativeHref)); + } catch (URISyntaxException e) { + logError("", e); + } + } + } + private void doSaveManifest() { manifestBuilder.write(new File(unzippedDirRoot, "imsmanifest.xml")); }