From 7b511bec75f8834911856a8586475d76aa345797 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 6 Oct 2016 23:03:44 +0200 Subject: [PATCH] OO-2258: endAttemptInteraction must be disabled if the item session has ended --- .../AssessmentObjectComponentRenderer.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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 1cc3f9909e8..4f63e7d6cd5 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 @@ -728,13 +728,15 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent private void renderEndAttemptInteraction(AssessmentRenderer renderer, StringOutput sb, EndAttemptInteraction interaction, ItemSessionState itemSessionState, AssessmentObjectComponent component, URLBuilder ubu, Translator translator) { - - String responseUniqueId = component.getResponseUniqueIdentifier(itemSessionState, interaction); - sb.append("<input name=\"qtiworks_presented_").append(responseUniqueId).append("\" type=\"hidden\" value=\"1\"/>"); + boolean ended = component.isItemSessionEnded(itemSessionState, renderer.isSolutionMode()); AssessmentObjectFormItem item = component.getQtiItem(); + String responseUniqueId = component.getResponseUniqueIdentifier(itemSessionState, interaction); String id = "qtiworks_response_".concat(responseUniqueId); - + if(!ended) { + sb.append("<input name=\"qtiworks_presented_").append(responseUniqueId).append("\" type=\"hidden\" value=\"1\"/>"); + } + FormItem endAttemptButton = item.getFormComponent(id); if(endAttemptButton == null) { String title = StringHelper.escapeHtml(interaction.getTitle()); @@ -746,8 +748,10 @@ public abstract class AssessmentObjectComponentRenderer extends DefaultComponent } item.addFormItem(endAttemptButton); } + endAttemptButton.setEnabled(!ended); endAttemptButton.getComponent().getHTMLRendererSingleton() - .render(renderer.getRenderer(), sb, endAttemptButton.getComponent(), ubu, translator, new RenderResult(), null); + .render(renderer.getRenderer(), sb, endAttemptButton.getComponent(), ubu, translator, new RenderResult(), null); + } private void renderPositionObjectStage(AssessmentRenderer renderer, StringOutput sb, PositionObjectStage positionObjectStage, -- GitLab