diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 77da3f472e726945d842322fa80a0a2f1c1e7ee3..391d8c8de948097035551f8ca69adc9a0608e93e 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 0231c7fde5b36969f3900d75a6c2513f440ef0ea..26c9e2c5c79785a87bf98c1096590816fc609e5e 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 4e31e995e7fb5d51977c5e5e8d9fb6c6d3b51c6f..1acbeeb50f03dab2f5bab8bac20f0e17c8e756bd 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);