From 0aba8753871ca0dd7a69b7be5e503dbf9e7238ba Mon Sep 17 00:00:00 2001
From: tekay <tom.kaesler@mni.thm.de>
Date: Tue, 16 Feb 2016 09:34:22 +0100
Subject: [PATCH] fix copyToPublicPool

---
 .../java/de/thm/arsnova/dao/CouchDBDao.java   | 30 ++++++++++---------
 .../java/de/thm/arsnova/dao/IDatabaseDao.java |  2 +-
 .../thm/arsnova/services/SessionService.java  |  4 +--
 3 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 77da3f47..391d8c8d 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -2190,26 +2190,28 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 	}
 
 	@Override
-	public ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions) {
+	public ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions, Boolean withAnswers) {
 		ImportExportSession ies = new ImportExportSession();
 		Session session = getDatabaseDao().getSessionFromKeyword(sessionkey);
 		ies.setSessionFromSessionObject(session);
 		List<Question> questionList = getDatabaseDao().getAllSkillQuestions(session);
 		for (Question q : questionList) {
 			List<de.thm.arsnova.entities.transport.Answer> aL = new ArrayList<de.thm.arsnova.entities.transport.Answer>();
-			for (Answer a : this.getDatabaseDao().getAllAnswers(q)) {
-				de.thm.arsnova.entities.transport.Answer ta = new de.thm.arsnova.entities.transport.Answer(a);
-				aL.add(ta);
-			}
-			// getAllAnswers does not grep for whole answer object so i need to add empty entries for abstentions
-			int i = this.getDatabaseDao().getAbstentionAnswerCount(q.get_id());
-			for (int b = 0; b < i; b++){
-				de.thm.arsnova.entities.transport.Answer ans = new de.thm.arsnova.entities.transport.Answer();
-				ans.setAnswerSubject("");
-				ans.setAnswerImage("");
-				ans.setAnswerText("");
-				ans.setAbstention(true);
-				aL.add(ans);
+			if (withAnswers) {
+				for (Answer a : this.getDatabaseDao().getAllAnswers(q)) {
+					de.thm.arsnova.entities.transport.Answer ta = new de.thm.arsnova.entities.transport.Answer(a);
+					aL.add(ta);
+				}
+				// getAllAnswers does not grep for whole answer object so i need to add empty entries for abstentions
+				int i = this.getDatabaseDao().getAbstentionAnswerCount(q.get_id());
+				for (int b = 0; b < i; b++) {
+					de.thm.arsnova.entities.transport.Answer ans = new de.thm.arsnova.entities.transport.Answer();
+					ans.setAnswerSubject("");
+					ans.setAnswerImage("");
+					ans.setAnswerText("");
+					ans.setAbstention(true);
+					aL.add(ans);
+				}
 			}
 			ies.addQuestionWithAnswers(q, aL);
 		}
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 0231c7fd..26c9e2c5 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -207,7 +207,7 @@ public interface IDatabaseDao {
 
 	SessionInfo importSession(User user, ImportExportSession importSession);
 
-	ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions);
+	ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions, Boolean withAnswers);
 
 	Statistics getStatistics();
 
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index 4e31e995..1acbeeb5 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -407,13 +407,13 @@ public class SessionService implements ISessionService, ApplicationEventPublishe
 	@Override
 	@PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')")
 	public ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions) {
-		return databaseDao.exportSession(sessionkey, withAnswerStatistics, withFeedbackQuestions);
+		return databaseDao.exportSession(sessionkey, withAnswerStatistics, withFeedbackQuestions, true);
 	}
 
 	@Override
 	@PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')")
 	public SessionInfo copySessionToPublicPool(String sessionkey, de.thm.arsnova.entities.transport.ImportExportSession.PublicPool pp) {
-		ImportExportSession temp = databaseDao.exportSession(sessionkey, false, false);
+		ImportExportSession temp = databaseDao.exportSession(sessionkey, false, false, false);
 		temp.getSession().setPublicPool(pp);
 		final User user = userService.getCurrentUser();
 		return databaseDao.importSession(user, temp);
-- 
GitLab