diff --git a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java index 09a58c0ac3a3550d740269ff5bab1e379bfd7075..69a07feadbacc1bf2de60dec8808596cc1f39664 100644 --- a/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java +++ b/src/main/java/org/olat/ims/qti21/resultexport/QTI21ResultsExportMediaResource.java @@ -341,7 +341,7 @@ public class QTI21ResultsExportMediaResource implements MediaResource { //render VelocityContainer to StringOutPut Renderer renderer = Renderer.getInstance(mainVC, translator, ubu, new RenderResult(), new DefaultGlobalSettings()); try(StringOutput sb = new StringOutput(32000); - VelocityRenderDecorator vrdec = new VelocityRenderDecorator(renderer, mainVC, sb)) { + VelocityRenderDecorator vrdec = new VelocityRenderDecorator(renderer, mainVC, sb)) { mainVC.contextPut("r", vrdec); renderer.render(sb, mainVC, null); return sb.toString(); diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java index c1504cc75d9cc27ce4e5e8d42452311807d2940d..f13290f2db104467abc5240e8c61ea5e4473a76b 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentResultController.java @@ -435,6 +435,7 @@ public class AssessmentResultController extends FormBasicController { String solutionId = "solutionItem" + count++; ItemBodyResultFormItem formItem = new ItemBodyResultFormItem(solutionId, resolvedAssessmentItem); formItem.setShowSolution(true); + formItem.setReport(true); initInteractionResultFormItem(formItem, sessionState); layoutCont.add(solutionId, formItem); solutionFormItem = formItem; diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java index 0e8ba28fdc6955c06d763b9b44752e48c9921bd0..47693ac201744b06e8dddb7b5cbf0fe9fce90d0e 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentObjectComponentRenderer.java @@ -1248,6 +1248,9 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent boolean ended = component.isItemSessionEnded(itemSessionState, renderer.isSolutionMode()); int expectedLines = interaction.getExpectedLines() == null ? 6 : interaction.getExpectedLines().intValue(); if(ended) { + if(renderer.isSolutionMode() && renderer.isReport()) { + expectedLines = 1;// resized textarea for solution in reports + } sb.append("<div id='oo_").append(responseUniqueId).append("' style='min-height:").append(expectedLines * 1.5).append("em;' class='form-control textarea_disabled o_disabled o_form_element_disabled"); } else { sb.append("<textarea id='oo_").append(responseUniqueId).append("' name='qtiworks_response_").append(responseUniqueId).append("'"); diff --git a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderer.java index c02ac5c605e0171dd6923b787970f537eff160f4..9fa7e9e057f76e828bdf9aadc628433d392c0790 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderer.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/AssessmentRenderer.java @@ -42,6 +42,7 @@ public class AssessmentRenderer { private boolean solutionAllowed; private boolean candidateCommentAllowed; private boolean showTitles; + private boolean report; public AssessmentRenderer(Renderer renderer) { this.renderer = renderer; @@ -59,6 +60,7 @@ public class AssessmentRenderer { clone.setSolutionAllowed(solutionAllowed); clone.setCandidateCommentAllowed(candidateCommentAllowed); clone.setShowTitles(showTitles); + clone.setReport(report); return clone; } @@ -154,6 +156,14 @@ public class AssessmentRenderer { this.mathJax = mathJax; } + public boolean isReport() { + return report; + } + + public void setReport(boolean report) { + this.report = report; + } + public void setRenderer(Renderer renderer) { this.renderer = renderer; } diff --git a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponent.java b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponent.java index a4c3fd38eac681ee549a43783832bb1af0de999d..e8fe33845bd4a9963bd6fe68f4ca80bfde76bf73 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponent.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponent.java @@ -48,6 +48,7 @@ public class ItemBodyResultComponent extends AssessmentObjectComponent { private ItemSessionState itemSessionState; private boolean showSolution; + private boolean report; public ItemBodyResultComponent(String name, ResolvedAssessmentItem resolvedAssessmentItem, ItemBodyResultFormItem qtiItem) { super(name); @@ -64,6 +65,14 @@ public class ItemBodyResultComponent extends AssessmentObjectComponent { this.showSolution = showSolution; } + public boolean isReport() { + return report; + } + + public void setReport(boolean report) { + this.report = report; + } + public ResolvedAssessmentTest getResolvedAssessmentTest() { return resolvedAssessmentTest; } diff --git a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponentRenderer.java b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponentRenderer.java index 8679476059c27aab8a2c0ed3bdf525351959f6e9..1ff9e6dfc031d3414ce7dc0dc7739653f0f86967 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponentRenderer.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultComponentRenderer.java @@ -53,11 +53,12 @@ public class ItemBodyResultComponentRenderer extends AssessmentObjectComponentRe if(cmp.isShowSolution()) { assessmentRenderer.setSolutionAllowed(true); assessmentRenderer.setSolutionMode(true); + assessmentRenderer.setReport(cmp.isReport()); } else { assessmentRenderer.setReviewMode(true); } - assessmentItem.getItemBody().getBlocks().forEach((block) + assessmentItem.getItemBody().getBlocks().forEach(block -> renderBlock(assessmentRenderer, sb, cmp, resolvedAssessmentItem, itemSessionState, block, ubu, translator)); } diff --git a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultFormItem.java b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultFormItem.java index 0b9f881c3de34ae65a031b14f4f8ffe305c7bb74..d7e5315a7a8faa302caa9a2dc4f5da34fd9b4821 100644 --- a/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultFormItem.java +++ b/src/main/java/org/olat/ims/qti21/ui/components/ItemBodyResultFormItem.java @@ -73,6 +73,14 @@ public class ItemBodyResultFormItem extends AssessmentObjectFormItem { public void setShowSolution(boolean showSolution) { component.setShowSolution(showSolution); } + + public boolean isReport() { + return component.isReport(); + } + + public void setReport(boolean report) { + component.setReport(report); + } @Override public ItemBodyResultComponent getComponent() {