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