From b7202b947415475f6bfaf73f045dcccea09259fc Mon Sep 17 00:00:00 2001 From: wiepke <wiepke@uni-potsdam.de> Date: Wed, 24 Jul 2019 13:09:29 +0200 Subject: [PATCH] tool works with just one group fix #115 --- .../unipotsdam/gf/config/FLTrailConfig.java | 2 +- .../gf/modules/assessment/AssessmentDAO.java | 6 ++- .../submission/view/SubmissionService.java | 3 +- .../gf/process/DossierCreationProcess.java | 51 ++++++++++++------- .../unipotsdam/gf/process/tasks/TaskDAO.java | 13 ++--- .../gf/process/tasks/TaskMapper.java | 17 ++++--- 6 files changed, 56 insertions(+), 36 deletions(-) diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/FLTrailConfig.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/FLTrailConfig.java index 6631095f..18ede696 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/FLTrailConfig.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/FLTrailConfig.java @@ -5,7 +5,7 @@ public class FLTrailConfig { public FLTrailConfig() { } - public static Boolean rocketChatIsOnline = true; + public static Boolean rocketChatIsOnline = false; public static Boolean wizardSimulatesFullAlgorithms = false; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java index 33f9572c..55902541 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java @@ -69,7 +69,11 @@ public class AssessmentDAO { assessmentProgress.setNumberOfGroupReportsMissing(numberOfGroups - reportCount); int nEA = getNumberOfGroupsWithoutExternalAssessment(project); - assessmentProgress.setNumberOfGroupsWithoutExternalAssessment(nEA); + if (numberOfGroups > 1) { + assessmentProgress.setNumberOfGroupsWithoutExternalAssessment(nEA); + } else { + assessmentProgress.setNumberOfGroupsWithoutExternalAssessment(0); + } int nSIA = getNumberOfStudentsWithoutInternalAssesment(project); assessmentProgress.setNumberOfStudentsWithoutInternalAsssessment(nSIA); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java index 6e7bafa5..b50dc281 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java @@ -1,6 +1,5 @@ package unipotsdam.gf.modules.submission.view; -import com.itextpdf.text.DocumentException; import unipotsdam.gf.modules.assessment.controller.model.Categories; import unipotsdam.gf.modules.fileManagement.FileRole; import unipotsdam.gf.modules.group.GroupDAO; @@ -107,7 +106,7 @@ public class SubmissionService { @Path("/full/update") public Response updateFullSubmission( @Context HttpServletRequest req, FullSubmissionPostRequest fullSubmissionPostRequest, - @QueryParam("finalize") Boolean finalize) throws IOException, DocumentException { + @QueryParam("finalize") Boolean finalize) throws Exception { String userEmail = (String) req.getSession().getAttribute(GFContexts.USEREMAIL); User user = userDAO.getUserByEmail(userEmail); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java index ef38f6e4..8a563aab 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java @@ -12,6 +12,7 @@ import unipotsdam.gf.modules.fileManagement.FileType; import unipotsdam.gf.modules.group.Group; import unipotsdam.gf.modules.group.GroupDAO; import unipotsdam.gf.modules.project.Project; +import unipotsdam.gf.modules.project.ProjectDAO; import unipotsdam.gf.modules.reflection.model.ReflectionQuestion; import unipotsdam.gf.modules.submission.controller.SubmissionController; import unipotsdam.gf.modules.submission.model.FullSubmission; @@ -45,6 +46,9 @@ public class DossierCreationProcess { @Inject private UserDAO userDAO; + @Inject + private ProjectDAO projectDao; + @Inject private ConstraintsImpl constraints; @@ -81,8 +85,8 @@ public class DossierCreationProcess { /** - * * add the initial dossier + * * @param fullSubmissionPostRequest* * @param user * @param project @@ -124,6 +128,7 @@ public class DossierCreationProcess { /** * update dossier by group + * * @param fullSubmissionPostRequest * @param user * @param project @@ -133,7 +138,7 @@ public class DossierCreationProcess { * @throws DocumentException */ public FullSubmission updateSubmission(FullSubmissionPostRequest fullSubmissionPostRequest, - User user, Project project, Boolean finalize) throws IOException, DocumentException { + User user, Project project, Boolean finalize) throws Exception { // delete old files fileManagementService.deleteFiles(new Project(fullSubmissionPostRequest.getProjectName()), user, fullSubmissionPostRequest.getFileRole()); // write new ones @@ -145,7 +150,8 @@ public class DossierCreationProcess { submissionController.markAsFinal(fullSubmission, finalize); if (finalize) { - createCloseFeedBackPhaseTask(new Project(fullSubmission.getProjectName()), user); + Project project1 = projectDao.getProjectByName(fullSubmission.getProjectName()); + createCloseFeedBackPhaseTask(project1, user); } return fullSubmission; @@ -165,6 +171,7 @@ public class DossierCreationProcess { /** * save feedback + * * @param contributionFeedback * @return */ @@ -175,6 +182,7 @@ public class DossierCreationProcess { /** * Feedback is persisted and tasks are created accordingly + * * @param groupId * @param project */ @@ -195,7 +203,7 @@ public class DossierCreationProcess { taskDAO.updateForAll(new Task(TaskName.CONTACT_GROUP_MEMBERS, null, project, Progress.FINISHED)); User user = userDAO.getUserByEmail(project.getAuthorEmail()); - Task task = new Task(TaskName.CLOSE_DOSSIER_FEEDBACK_PHASE, user, project, Progress.FINISHED ); + Task task = new Task(TaskName.CLOSE_DOSSIER_FEEDBACK_PHASE, user, project, Progress.FINISHED); taskDAO.updateForUser(task); //todo: implement communication stuff @@ -237,8 +245,8 @@ public class DossierCreationProcess { } /** - * @param user User who uploaded the Submission for his / her group - * @param project the project the submission was written for + * @param user User who uploaded the Submission for his / her group + * @param project the project the submission was written for * @return the fullSubmission with correct ID */ private void notifyAboutSubmission(User user, Project project) { @@ -268,19 +276,26 @@ public class DossierCreationProcess { Task taskAnnotate = new Task(TaskName.ANNOTATE_DOSSIER, user, project, Progress.FINISHED); taskDAO.updateForGroup(taskAnnotate); - taskDAO.persistTaskGroup(project, user, TaskName.GIVE_FEEDBACK, Phase.DossierFeedback); - createReeditDossierTask(project, groupDAO.getMyGroupId(user, project)); - if (constraints.checkIfFeedbackCanBeDistributed(project)) { - // create Task to give Feedback - List<Group> groupsInProject = groupDAO.getGroupsByProjectName(project.getName()); - List<Task> allFeedbackTasks = new ArrayList<>(); - for (Group group : groupsInProject) { - Task giveFeedbackTask1 = taskDAO.getTasksWithTaskName(group.getId(), project, TaskName.GIVE_FEEDBACK); - if (!allFeedbackTasks.contains(giveFeedbackTask1)) - allFeedbackTasks.add(giveFeedbackTask1); + List<Group> groupsInProject = groupDAO.getGroupsByProjectName(project.getName()); + if (groupsInProject.size() > 1) { + taskDAO.persistTaskGroup(project, user, TaskName.GIVE_FEEDBACK, Phase.DossierFeedback); + createReeditDossierTask(project, groupDAO.getMyGroupId(user, project)); + if (constraints.checkIfFeedbackCanBeDistributed(project)) { + // create Task to give Feedback + List<Task> allFeedbackTasks = new ArrayList<>(); + for (Group group : groupsInProject) { + Task giveFeedbackTask1 = taskDAO.getTasksWithTaskName(group.getId(), project, TaskName.GIVE_FEEDBACK); + if (!allFeedbackTasks.contains(giveFeedbackTask1)) + allFeedbackTasks.add(giveFeedbackTask1); + } + //specifies user, who needs to give a feedback in DB + feedback.specifyFeedbackTasks(allFeedbackTasks); } - //specifies user, who needs to give a feedback in DB - feedback.specifyFeedbackTasks(allFeedbackTasks); + } else { + //There is just one group in the project + + taskDAO.createGroupTask(project, groupDAO.getMyGroupId(user, project), TaskName.REEDIT_DOSSIER, Phase.DossierFeedback, Progress.FINISHED); + taskDAO.persistTeacherTask(project, TaskName.CLOSE_DOSSIER_FEEDBACK_PHASE, Phase.DossierFeedback); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java index b96519d5..fcc5e019 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -22,11 +22,7 @@ import unipotsdam.gf.process.phases.Phase; import javax.annotation.ManagedBean; import javax.inject.Inject; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -381,7 +377,12 @@ public class TaskDAO { case CLOSE_DOSSIER_FEEDBACK_PHASE: { Task task = getGeneralTask(vereinfachtesResultSet); task.setHasRenderModel(true); - List<Group> missingFeedbacks = constraints.checkWhichDossiersAreNotFinalized(project); + List<Group> missingFeedbacks; + if (groupDAO.getGroupsByProjectName(project.getName()).size() > 1) { + missingFeedbacks = constraints.checkWhichDossiersAreNotFinalized(project); + } else { + missingFeedbacks = new ArrayList<>(); + } task.setTaskData(missingFeedbacks); //frontendCheck if missingFeedbacks.size ==0 result = task; Task waitingForDossiers = new Task( diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskMapper.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskMapper.java index 79712912..145b2244 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskMapper.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskMapper.java @@ -79,14 +79,15 @@ public class TaskMapper { Integer groupResult; List<Integer> groups = buildGroupIndexes(project); // every user gets the next group in the cycle - if (groups.indexOf(groupId) + 1 == groups.size()) { - groupResult = groups.get(0); - } else { - groupResult = groups.get(groups.indexOf(groupId) + 1); + if (groups.size() > 1) { + if (groups.indexOf(groupId) + 1 == groups.size()) { + groupResult = groups.get(0); + } else { + groupResult = groups.get(groups.indexOf(groupId) + 1); + } + Group group = new Group(project.getName()); + group.setId(groupResult); + assessmentDAO.persistMapping(new TaskMapping(user, group, null, taskName, project)); } - Group group = new Group(project.getName()); - group.setId(groupResult); - - assessmentDAO.persistMapping(new TaskMapping(user, group, null, taskName, project)); } } -- GitLab