From d505642866e40147882e5838458cf9c737885f1a Mon Sep 17 00:00:00 2001 From: Julian Dehne <julian.dehne@uni-potsdam.de> Date: Thu, 18 Oct 2018 14:42:58 +0200 Subject: [PATCH] bugfixing: fixed feedbackassignment --- .../gf/config/GFApplicationBinder.java | 2 ++ .../gf/modules/feedback/FeedbackImpl.java | 6 ++-- .../controller/SubmissionController.java | 36 ++++++++++--------- .../gf/process/DossierCreationProcess.java | 8 +---- .../unipotsdam/gf/process/tasks/TaskDAO.java | 10 ++---- 5 files changed, 29 insertions(+), 33 deletions(-) diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java index bc8d28a3..f0307c3b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java @@ -6,6 +6,7 @@ import unipotsdam.gf.modules.annotation.controller.AnnotationController; import unipotsdam.gf.modules.assessment.controller.service.AssessmentDBCommunication; import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; import unipotsdam.gf.modules.communication.service.CommunicationDummyService; +import unipotsdam.gf.modules.feedback.FeedbackImpl; import unipotsdam.gf.modules.group.DummyProjectCreationService; import unipotsdam.gf.modules.group.GroupDAO; import unipotsdam.gf.modules.group.GroupfindingImpl; @@ -55,6 +56,7 @@ public class GFApplicationBinder extends AbstractBinder { bind(ProjectDAO.class).to(ProjectDAO.class); bind(GroupDAO.class).to(GroupDAO.class); bind(TaskDAO.class).to(TaskDAO.class); + bind(FeedbackImpl.class).to(Feedback.class); bindMore(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java index 30063544..fabd7d37 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/feedback/FeedbackImpl.java @@ -43,11 +43,11 @@ public class FeedbackImpl implements Feedback { case SingleUser: List<User> usersByProjectName = userDAO.getUsersByProjectName(project.getName()); User firstUser = usersByProjectName.get(0); - User lastUser = usersByProjectName.get(usersByProjectName.size()); + User lastUser = usersByProjectName.get(usersByProjectName.size()-1); submissionController.updateFullSubmission(firstUser, lastUser); - for (int i = 0; i<usersByProjectName.size()-1;i++) { - User submissionOwner = usersByProjectName.get(i+1); + for (int i = 0; i <= usersByProjectName.size()-2;i++) { User feedbackGiver =usersByProjectName.get(i); + User submissionOwner = usersByProjectName.get(i+1); submissionController.updateFullSubmission(submissionOwner, feedbackGiver); } break; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java index 7574532b..b5aeb648 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java @@ -585,14 +585,14 @@ public class SubmissionController implements ISubmission, HasProgress { * link the full submission with a user who is supposed to give feedback to it. * this creates a 1:1 relationship between user and submissions * in case gorup work is selected the relationship should be with a group instead + * * @param submissionOwner * @param feedbackGiver */ public void updateFullSubmission(User submissionOwner, User feedbackGiver) { connection.connect(); String query = "update fullsubmissions set feedbackUser = ? where user = ?"; - connection.issueUpdateStatement(query, feedbackGiver.getEmail(), - submissionOwner.getEmail()); + connection.issueUpdateStatement(query, feedbackGiver.getEmail(), submissionOwner.getEmail()); connection.close(); // TODO implement linking submission with group } @@ -601,20 +601,22 @@ public class SubmissionController implements ISubmission, HasProgress { * @param target * @return */ - public FeedbackTaskData getFeedbackTaskData(User target) { + public FeedbackTaskData getFeedbackTaskData(User target, Project project) { connection.connect(); - String query = "SELECT * from fullsubmissions where feedbackUser = ?"; - VereinfachtesResultSet vereinfachtesResultSet = connection.issueSelectStatement(query, target.getEmail()); - vereinfachtesResultSet.next(); - String submissionId = vereinfachtesResultSet.getString("id"); - String projectName = vereinfachtesResultSet.getString("projectName"); - Category category = Category.RECHERCHE; - FullSubmission fullSubmission = new FullSubmission(submissionId); - fullSubmission.setProjectName(projectName); - connection.close(); - - return new FeedbackTaskData(target, fullSubmission, category); + String query = "SELECT * from fullsubmissions where feedbackUser = ? and projectName = ?"; + VereinfachtesResultSet vereinfachtesResultSet = connection.issueSelectStatement(query, target.getEmail(), + project.getName()); + if (vereinfachtesResultSet.next()) { + String submissionId = vereinfachtesResultSet.getString("id"); + String projectName = vereinfachtesResultSet.getString("projectName"); + Category category = Category.RECHERCHE; + FullSubmission fullSubmission = new FullSubmission(submissionId); + fullSubmission.setProjectName(projectName); + connection.close(); + return new FeedbackTaskData(target, fullSubmission, category); + } else + return null; } public int getFinalizedDossiersCount(Project project) { @@ -642,7 +644,8 @@ public class SubmissionController implements ISubmission, HasProgress { progressData.setNumberNeeded(dossiersNeeded(project)); List<User> strugglersWithSubmission = getStrugglersWithSubmission(project); progressData.setUsersMissing(strugglersWithSubmission); - progressData.setAlmostComplete((progressData.getNumberNeeded()/progressData.getNumberOfCompletion()) <= (1/10)); + progressData + .setAlmostComplete((progressData.getNumberOfCompletion() / progressData.getNumberNeeded()) <= (1 / 10)); return progressData; } @@ -694,8 +697,9 @@ public class SubmissionController implements ISubmission, HasProgress { public List<User> getAllUsersWithFeedbackGiven(Project project) { List<User> result = new ArrayList<>(); connection.connect(); - String query = "select * feedbackUser from fullsubmissions where projectName = ?"; + String query = "select * from fullsubmissions where projectName = ?"; VereinfachtesResultSet vereinfachtesResultSet = connection.issueSelectStatement(query, project.getName()); + while (vereinfachtesResultSet.next()) { result.add(userDAO.getUserByEmail(vereinfachtesResultSet.getString("feedbackUser"))); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java index 6392aeed..7bb9373b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java @@ -25,12 +25,6 @@ public class DossierCreationProcess { @Inject private SubmissionController submissionController; - @Inject - private Management management; - - @Inject - private UserDAO userDAO; - @Inject private TaskDAO taskDAO; @@ -98,7 +92,7 @@ public class DossierCreationProcess { // persist tasks for feedback taskDAO.persistMemberTask( - new Project(fullSubmission.getProjectName()), TaskName.GIVE_FEEDBACK, Phase.DossierFeedback); + project, TaskName.GIVE_FEEDBACK, 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 9d15f737..eba823b5 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -174,7 +174,9 @@ public class TaskDAO { } case GIVE_FEEDBACK: { - Task feedbackTask = getFeedbackTask(user, vereinfachtesResultSet); + Task feedbackTask = getGeneralTask(vereinfachtesResultSet); + feedbackTask.setTaskData(submissionController.getFeedbackTaskData(user, project)); + feedbackTask.setHasRenderModel(true); result.add(feedbackTask); break; } @@ -268,10 +270,4 @@ public class TaskDAO { persist(project, feedbackTaskData.getTarget(), TaskName.GIVE_FEEDBACK, Phase.DossierFeedback, TaskType.LINKED); } - public Task getFeedbackTask(User target, VereinfachtesResultSet vereinfachtesResultSet) { - Task task = getGeneralTask(vereinfachtesResultSet); - FeedbackTaskData feedbackTaskData = submissionController.getFeedbackTaskData(target); - task.setTaskData(feedbackTaskData); - return task; - } } -- GitLab