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