From 7f2a277fad09f68160abdb1cc03fd7740f71c44b Mon Sep 17 00:00:00 2001
From: Martin Staehr <software@mstaehr.net>
Date: Sun, 9 Jun 2019 15:55:07 +0200
Subject: [PATCH] #77 fix: create task for whole group

the task for optional porfolio entries was just created for user
uploading the dossier. now it is created for the whole group
---
 .../gf/interfaces/IReflectionService.java          |  6 +++---
 .../java/unipotsdam/gf/modules/group/GroupDAO.java |  4 ++++
 .../reflection/service/ReflectionService.java      | 14 ++++++++++----
 .../gf/process/DossierCreationProcess.java         |  3 ++-
 4 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IReflectionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IReflectionService.java
index e889868d..26918a20 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IReflectionService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IReflectionService.java
@@ -1,12 +1,12 @@
 package unipotsdam.gf.interfaces;
 
+import unipotsdam.gf.modules.group.Group;
 import unipotsdam.gf.modules.project.Project;
-import unipotsdam.gf.modules.user.User;
 import unipotsdam.gf.process.phases.Phase;
 
 public interface IReflectionService {
 
-    void startOptionalPortfolioTask(Project project, User target, Phase phase);
+    void startOptionalPortfolioTask(Project project, Group group, Phase phase);
 
-    void finishOptionalPortfolioTask(Project project, User target, Phase phase);
+    void finishOptionalPortfolioTask(Project project, Group group, Phase phase);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
index acfd6c3e..71e0913f 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
@@ -185,6 +185,10 @@ public class GroupDAO {
         return groupId;
     }
 
+    public Group getMyGroup(User user, Project project) {
+        int groupId = getMyGroupId(user, project);
+        return getGroupByGroupId(groupId);
+    }
 
     private void fillGroupFromResultSet(ArrayList<Group> groups, VereinfachtesResultSet vereinfachtesResultSet,
                                         Boolean withRocketChatId) {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/reflection/service/ReflectionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/reflection/service/ReflectionService.java
index 2150a027..8329a231 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/reflection/service/ReflectionService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/reflection/service/ReflectionService.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.modules.reflection.service;
 
 import unipotsdam.gf.interfaces.IReflectionService;
+import unipotsdam.gf.modules.group.Group;
 import unipotsdam.gf.modules.project.Project;
 import unipotsdam.gf.modules.user.User;
 import unipotsdam.gf.process.phases.Phase;
@@ -21,12 +22,17 @@ public class ReflectionService implements IReflectionService {
     @Inject
     private TaskDAO taskDAO;
 
-    public void startOptionalPortfolioTask(Project project, User target, Phase phase) {
-        persistOptionalEntryTask(project, target, Progress.JUSTSTARTED, phase);
+    public void startOptionalPortfolioTask(Project project, Group group, Phase phase) {
+        group.getMembers().forEach(target -> {
+            persistOptionalEntryTask(project, target, Progress.JUSTSTARTED, phase);
+        });
+
     }
 
-    public void finishOptionalPortfolioTask(Project project, User target, Phase phase) {
-        persistOptionalEntryTask(project, target, Progress.FINISHED, phase);
+    public void finishOptionalPortfolioTask(Project project, Group group, Phase phase) {
+        group.getMembers().forEach(target -> {
+            persistOptionalEntryTask(project, target, Progress.FINISHED, phase);
+        });
     }
 
     private void persistOptionalEntryTask(Project project, User target, Progress progress, Phase phase) {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java
index 0b1eb340..7f76959b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java
@@ -76,7 +76,8 @@ public class DossierCreationProcess {
         // this triggers the annotate task
         taskDAO.persistTaskGroup(project, user, TaskName.ANNOTATE_DOSSIER, Phase.DossierFeedback);
 
-        reflectionService.startOptionalPortfolioTask(project, user, Phase.DossierFeedback);
+        Group group = groupDAO.getMyGroup(user, project);
+        reflectionService.startOptionalPortfolioTask(project, group, Phase.DossierFeedback);
 
     }
 
-- 
GitLab