From 1fc741659778596868f91819e2a90cfdc5bf2f3e Mon Sep 17 00:00:00 2001
From: Christoph Thelen <christoph.thelen@mni.thm.de>
Date: Wed, 13 Feb 2013 15:06:03 +0100
Subject: [PATCH] Store if the correct answer should be shown to users

---
 .../controller/QuestionByLecturerController.java   | 14 ++++++++++++++
 src/main/java/de/thm/arsnova/dao/CouchDBDao.java   |  5 +++--
 .../java/de/thm/arsnova/entities/Question.java     |  9 +++++++++
 3 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/controller/QuestionByLecturerController.java b/src/main/java/de/thm/arsnova/controller/QuestionByLecturerController.java
index 23c0911a..b3ec0cd8 100644
--- a/src/main/java/de/thm/arsnova/controller/QuestionByLecturerController.java
+++ b/src/main/java/de/thm/arsnova/controller/QuestionByLecturerController.java
@@ -137,6 +137,20 @@ public class QuestionByLecturerController extends AbstractController {
 		}
 		this.questionService.update(question);
 	}
+	
+	@RequestMapping(value = "/{questionId}/publishcorrectanswer", method = RequestMethod.POST)
+	@ResponseBody
+	public final void publishCorrectAnswer(
+			@PathVariable final String questionId,
+			@RequestParam(required = false) final Boolean showCorrectAnswer,
+			@RequestBody final Question question,
+			final HttpServletResponse response
+	) {
+		if (showCorrectAnswer != null) {
+			question.setShowAnswer(showCorrectAnswer);
+		}
+		this.questionService.update(question);
+	}
 
 	@RequestMapping(
 			value = { "/list" },
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index e9cea280..b74cfcd4 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -536,12 +536,12 @@ public class CouchDBDao implements IDatabaseDao {
 		q.put("releasedFor", question.getReleasedFor());
 		q.put("possibleAnswers", question.getPossibleAnswers());
 		q.put("noCorrect", question.isNoCorrect());
+		q.put("showStatistic", question.isShowStatistic());
+		q.put("showAnswer", question.isShowAnswer());
 		try {
 			database.saveDocument(q, null);
-			
 			question.set_id(q.getId());
 			question.set_rev(q.getRev());
-			
 			return question;
 		} catch (IOException e) {
 			LOGGER.error("Could not save question {}", question);
@@ -560,6 +560,7 @@ public class CouchDBDao implements IDatabaseDao {
 			q.put("possibleAnswers", question.getPossibleAnswers());
 			q.put("noCorrect", question.isNoCorrect());
 			q.put("showStatistic", question.isShowStatistic());
+			q.put("showAnswer", question.isShowAnswer());
 			
 			this.database.saveDocument(q);
 			question.set_rev(q.getRev());
diff --git a/src/main/java/de/thm/arsnova/entities/Question.java b/src/main/java/de/thm/arsnova/entities/Question.java
index 3ce3ae86..cb50a5ad 100644
--- a/src/main/java/de/thm/arsnova/entities/Question.java
+++ b/src/main/java/de/thm/arsnova/entities/Question.java
@@ -37,6 +37,7 @@ public class Question {
 	private int number;
 	private int duration;
 	private boolean showStatistic; // sic
+	private boolean showAnswer;
 	private String _id;
 	private String _rev;
 
@@ -160,6 +161,14 @@ public class Question {
 		this.showStatistic = showStatistic;
 	}
 
+	public boolean isShowAnswer() {
+		return showAnswer;
+	}
+
+	public void setShowAnswer(boolean showAnswer) {
+		this.showAnswer = showAnswer;
+	}
+
 	public final String get_id() {
 		return _id;
 	}
-- 
GitLab