From ed5b3c1e4c64f7019faa6c8b87c85cad6fda636b Mon Sep 17 00:00:00 2001
From: Julian Dehne <julian.dehne@uni-potsdam.de>
Date: Mon, 26 Aug 2019 16:08:39 +0200
Subject: [PATCH] references #250 it looks like the task answer questions is
 not finished for all students however, you seem to be able to go past the
 execution phase

---
 .../wizard/ReflectionPhaseSimulation.java     | 38 ++++++++++++-------
 .../gf/modules/wizard/WizardDao.java          | 17 +++++++++
 2 files changed, 41 insertions(+), 14 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/ReflectionPhaseSimulation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/ReflectionPhaseSimulation.java
index 85923c32..86100401 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/ReflectionPhaseSimulation.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/ReflectionPhaseSimulation.java
@@ -128,6 +128,7 @@ public class ReflectionPhaseSimulation implements IReflectionPhaseSimulation {
 
     @Override
     public void simulateCreatingPortfolioEntries(Project project) throws Exception {
+        //if (submissionController.getProjectSubmissions(project, FileRole.PORTFOLIO_ENTRY, ))
         simulateSubmissions(project, FileRole.PORTFOLIO_ENTRY, Visibility.GROUP);
     }
 
@@ -163,20 +164,24 @@ public class ReflectionPhaseSimulation implements IReflectionPhaseSimulation {
     }
 
     private void simulateSubmissions(Project project, FileRole fileRole, Visibility visibility) throws Exception {
-        List<User> usersByProjectName = userDAO.getUsersByProjectName(project.getName());
-        for (User user : usersByProjectName) {
-            switch (fileRole) {
-                case PORTFOLIO_ENTRY:
-                    List<FullSubmission> assessableSubmissions = submissionController.getAssessableSubmissions(user, project, fileRole);
-                    if (CollectionUtils.isEmpty(assessableSubmissions)) {
-                        List<SelectedReflectionQuestion> reflectionQuestions = selectedReflectionQuestionsDAO.findBy(project);
-                        createEntries(project, user, reflectionQuestions, fileRole, visibility);
-                    }
-                    break;
-                case REFLECTION_QUESTION:
-                    List<SelectedReflectionQuestion> unansweredQuestions = selectedReflectionQuestionsDAO.getUnansweredQuestions(project, user, false);
-                    createEntries(project, user, unansweredQuestions, fileRole, visibility);
-                    break;
+        if (submissionController.getProjectSubmissions(project, fileRole, visibility).size() < 2) {
+            List<User> usersByProjectName = userDAO.getUsersByProjectName(project.getName());
+            for (User user : usersByProjectName) {
+                switch (fileRole) {
+                    case PORTFOLIO_ENTRY:
+                        List<FullSubmission> assessableSubmissions =
+                                submissionController.getAssessableSubmissions(user, project, fileRole);
+                        if (CollectionUtils.isEmpty(assessableSubmissions)) {
+                            List<SelectedReflectionQuestion> reflectionQuestions = selectedReflectionQuestionsDAO.findBy(project);
+                            createEntries(project, user, reflectionQuestions, fileRole, visibility);
+                        }
+                        break;
+                    case REFLECTION_QUESTION:
+                        List<SelectedReflectionQuestion> unansweredQuestions =
+                                selectedReflectionQuestionsDAO.getUnansweredQuestions(project, user, false);
+                        createEntries(project, user, unansweredQuestions, fileRole, visibility);
+                        break;
+                }
             }
         }
     }
@@ -195,6 +200,11 @@ public class ReflectionPhaseSimulation implements IReflectionPhaseSimulation {
                     FullSubmissionPostRequest submission =
                             new FullSubmissionPostRequest(myGroup, text, fileRole, project, visibility, title);
                     submission.setHtml(text);
+                    if (fileRole == FileRole.REFLECTION_QUESTION) {
+                        submission.setSaveUsername(true);
+                        submission.setUserEMail(user.getEmail());
+                        submission.setReflectionQuestionId(reflectionQuestion.getId());
+                    }
                     FullSubmission fullSubmission = dossierCreationProcess.addDossier(submission, user, project);
                     if (fileRole == FileRole.REFLECTION_QUESTION) {
                         iExecutionProcess.answerReflectionQuestion(fullSubmission, reflectionQuestion);
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/WizardDao.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/WizardDao.java
index 423720aa..0e783c5d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/WizardDao.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/wizard/WizardDao.java
@@ -102,6 +102,23 @@ public class WizardDao {
         correctCreatePortfolioStatus(project, result);
         //correctPortfolioFeedback(project, result);
 
+        if (reflectiveQuestionsAreAnswered(project)) {
+            result.add(TaskName.ANSWER_REFLECTION_QUESTIONS);
+        }
+
+        return result;
+    }
+
+    public Boolean reflectiveQuestionsAreAnswered(Project project) {
+        Boolean result = false;
+        connect.connect();
+        VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(
+                "SELECT * from tasks where taskName = ? and projectName = ? and progress = ?",
+                TaskName.ANSWER_REFLECTION_QUESTIONS, project.getName(), Progress.FINISHED.name());
+        if (vereinfachtesResultSet != null) {
+            result = vereinfachtesResultSet.next();
+        }
+        connect.close();
         return result;
     }
 
-- 
GitLab