Skip to content
Snippets Groups Projects
Commit 7b69c1c6 authored by Julian Dehne's avatar Julian Dehne
Browse files

feat: Implemented Tasks for GroupPhase

parent 17ae98e5
No related branches found
No related tags found
No related merge requests found
Showing
with 60 additions and 37 deletions
......@@ -5,6 +5,9 @@ import unipotsdam.gf.modules.project.Management;
import unipotsdam.gf.modules.project.ManagementImpl;
import unipotsdam.gf.modules.project.ProjectDAO;
import unipotsdam.gf.modules.user.UserDAO;
import unipotsdam.gf.process.GroupFormationProcess;
import unipotsdam.gf.process.ProjectCreationProcess;
import unipotsdam.gf.process.constraints.ConstraintsImpl;
import unipotsdam.gf.process.phases.PhasesImpl;
import unipotsdam.gf.process.tasks.TaskDAO;
import unipotsdam.gf.interfaces.*;
......@@ -42,11 +45,17 @@ public class GFApplicationBinder extends AbstractBinder {
bind(UserDAO.class).to(UserDAO.class);
bind(ProjectDAO.class).to(ProjectDAO.class);
bind(GroupDAO.class).to(GroupDAO.class);
bind(MysqlConnectImpl.class).to(MysqlConnect.class);
bind(GroupfindingImpl.class).to(IGroupFinding.class);
bind(TaskDAO.class).to(TaskDAO.class);
bind(IJournalImpl.class).to(IJournal.class);
bind(AssessmentDBCommunication.class).to(AssessmentDBCommunication.class);
bind(GFContexts.class).to(GFContexts.class);
bind(ProjectCreationProcess.class).to(ProjectCreationProcess.class);
bind(GroupFormationProcess.class).to(GroupFormationProcess.class);
bind(ConstraintsImpl.class).to(ConstraintsImpl.class);
bindMore();
}
protected void bindMore() {
bind(MysqlConnectImpl.class).to(MysqlConnect.class);
}
}
......@@ -13,6 +13,7 @@ public class Group {
private String chatRoomId;
public Group() {
members = new ArrayList<>();
}
......
......@@ -69,7 +69,7 @@ public class GroupView {
@Path("/projects/{projectName}")
public void saveGroups(@PathParam("projectName") String projectName, Group[] groups) {
Project project = new Project(projectName);
groupFormationProcess.finalizeGroups(groups, project);
groupFormationProcess.finalizeGroups(project, groups);
}
}
package unipotsdam.gf.process;
import unipotsdam.gf.interfaces.IGroupFinding;
import unipotsdam.gf.interfaces.IPhases;
import unipotsdam.gf.modules.group.Group;
import unipotsdam.gf.modules.group.GroupFormationMechanism;
import unipotsdam.gf.modules.project.Project;
import unipotsdam.gf.modules.project.ProjectDAO;
import unipotsdam.gf.process.phases.Phase;
import unipotsdam.gf.process.phases.PhasesImpl;
import unipotsdam.gf.process.tasks.TaskDAO;
import unipotsdam.gf.process.tasks.TaskName;
......@@ -20,6 +22,9 @@ public class GroupFormationProcess {
@Inject
TaskDAO taskDAO;
@Inject
IPhases phases;
@Inject
private IGroupFinding groupfinding;
......@@ -28,9 +33,13 @@ public class GroupFormationProcess {
taskDAO.persistTeacherTask(project, TaskName.FORM_GROUPS_MANUALLY, Phase.GroupFormation);
}
public void finalizeGroups(Group[] groups, Project project) {
public void finalizeGroups( Project project, Group ... groups) {
groupfinding.persistGroups(Arrays.asList(groups), project);
taskDAO.persistTeacherTask(project, TaskName.CLOSE_GROUP_FINDING_PHASE, Phase.GroupFormation);
taskDAO.persistMemberTask(project, TaskName.CONTACT_GROUP_MEMBERS, Phase.GroupFormation);
}
public void finish(Project project) {
phases.endPhase(Phase.GroupFormation, project);
}
}
......@@ -115,6 +115,7 @@ public class TaskDAO {
task.setGroupTask(false);
task.setTaskName(taskName);
task.setPhase(phase);
task.setTaskType(TaskType.INFO);
return task;
}
......@@ -160,9 +161,17 @@ public class TaskDAO {
connect.connect();
String query =
"INSERT INTO fltrail.tasks (userEmail, projectName, taskUrl, taskName, " +
"INSERT INTO fltrail.tasks (userEmail, projectName, taskName, " +
"groupTask, importance, progress, phase, created, due, taskMode, taskMode2, taskMode3) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
if (task.getTaskType() == null || task.getTaskType().length < 0) {
try {
throw new Exception("set a task type");
} catch (Exception e) {
e.printStackTrace();
}
}
connect.issueInsertOrDeleteStatement(query, task.getUserEmail(), task.getProjectName(),
task.getTaskName(), task.getGroupTask(), task.getImportance(), task.getProgress(), task
......
package unipotsdam.gf.process.tasks;
public enum TaskName {
WAIT_FOR_PARTICPANTS,
CLOSE_GROUP_FINDING_PHASE,
WAITING_FOR_GROUP,
// Teacher Tasks
WAIT_FOR_PARTICPANTS, CLOSE_GROUP_FINDING_PHASE, WAITING_FOR_GROUP,
//Student Tasks
UPLOAD_DOSSIER,
GIVE_FEEDBACK,
CREATE_QUIZ,
WRITE_EJOURNAL,
FINALIZE_DOSSIER,
FINALIZE_EJOURNAL, FORM_GROUPS_MANUALLY, EDIT_FORMED_GROUPS, CONTACT_GROUP_MEMBERS, ASSESSMENT
// Student Tasks
UPLOAD_DOSSIER, GIVE_FEEDBACK, CREATE_QUIZ, WRITE_EJOURNAL, FINALIZE_DOSSIER, FINALIZE_EJOURNAL, FORM_GROUPS_MANUALLY, EDIT_FORMED_GROUPS, CONTACT_GROUP_MEMBERS, ASSESSMENT
}
......@@ -24,6 +24,6 @@ public class TaskView {
public ArrayList<Task> getTasks(@PathParam("userEmail") String userEmail, @PathParam("projectToken") String projectToken)
throws NotImplemented, UnsupportedEncodingException {
String user = java.net.URLDecoder.decode(userEmail, "UTF-8");
return taskDAO.getTaskType(user, projectToken);
return taskDAO.getTasks(user, projectToken);
}
}
......@@ -16,6 +16,8 @@ import unipotsdam.gf.modules.project.ManagementImpl;
import unipotsdam.gf.modules.project.ProjectDAO;
import unipotsdam.gf.modules.researchreport.DummyResearchReportManagement;
import unipotsdam.gf.modules.researchreport.ResearchReportManagement;
import unipotsdam.gf.process.GroupFormationProcess;
import unipotsdam.gf.process.ProjectCreationProcess;
import unipotsdam.gf.process.phases.PhasesImpl;
import unipotsdam.gf.process.tasks.TaskDAO;
import unipotsdam.gf.modules.user.UserDAO;
......@@ -24,26 +26,10 @@ import unipotsdam.gf.session.GFContexts;
public class TestGFApplicationBinder extends GFApplicationBinder {
@Override
protected void configure() {
bind(CommunicationDummyService.class).to(ICommunication.class);
bind(ManagementImpl.class).to(Management.class);
bind(DummyFeedback.class).to(Feedback.class);
bind(PeerAssessment.class).to(IPeerAssessment.class);
bind(PhasesImpl.class).to(IPhases.class);
bind(ManagementImpl.class).to(Management.class);
bind(DummyResearchReportManagement.class).to(ResearchReportManagement.class);
bind(DummyGroupfinding.class).to(IGroupFinding.class);
bind(DummyProjectCreationService.class).to(DummyProjectCreationService.class);
bind(UserDAO.class).to(UserDAO.class);
bind(ProjectDAO.class).to(ProjectDAO.class);
bind(GroupDAO.class).to(GroupDAO.class);
bind(GroupfindingImpl.class).to(IGroupFinding.class);
bind(TaskDAO.class).to(TaskDAO.class);
bind(IJournalImpl.class).to(IJournal.class);
bind(AssessmentDBCommunication.class).to(AssessmentDBCommunication.class);
bind(GFContexts.class).to(GFContexts.class);
protected void bindMore() {
bind(MysqlTestConnect.class).to(MysqlConnect.class);
}
}
......@@ -257,7 +257,7 @@ public class ActivityFlowTest {
groupFinding.selectGroupfindingCriteria(groupfindingCriteria, project);
taskDAO.createTaskWaitForParticipants(project, teacher);
Task[] tasks = taskDAO.getTaskType(teacher, project);
Task[] tasks = taskDAO.getTasks(teacher, project);
assertTrue(tasks != null && tasks.length > 0);
......
......@@ -11,11 +11,13 @@ import unipotsdam.gf.config.GFApplicationBinder;
import unipotsdam.gf.core.database.TestGFApplicationBinder;
import unipotsdam.gf.interfaces.ICommunication;
import unipotsdam.gf.interfaces.IGroupFinding;
import unipotsdam.gf.modules.group.Group;
import unipotsdam.gf.modules.group.GroupFormationMechanism;
import unipotsdam.gf.modules.project.Management;
import unipotsdam.gf.modules.project.Project;
import unipotsdam.gf.modules.project.ProjectConfiguration;
import unipotsdam.gf.modules.user.User;
import unipotsdam.gf.process.GroupFormationProcess;
import unipotsdam.gf.process.ProjectCreationProcess;
import javax.inject.Inject;
......@@ -40,6 +42,9 @@ public class GroupPhaseTaskTest {
@Inject
private ProjectCreationProcess projectCreationProcess;
@Inject
private GroupFormationProcess groupFormationProcess;
private PodamFactory factory = new PodamFactoryImpl();
......@@ -86,6 +91,17 @@ public class GroupPhaseTaskTest {
projectCreationProcess.studentEntersProject(project, user);
}
groupFormationProcess.changeGroupFormationMechanism(GroupFormationMechanism.Manual, project);
Group group = new Group();
for (User student : students) {
group.addMember(student);
}
groupFormationProcess.finalizeGroups(project, group);
groupFormationProcess.finish(project);
}
}
......@@ -127,7 +127,6 @@ CREATE TABLE IF NOT EXISTS `tasks` (
`taskName` varchar (400) not NULL,
`userEmail` varchar(400) NOT NULL,
`projectName` varchar(400) NOT NULL,
`taskUrl` varchar(400) NOT NULL,
`technicalName` varchar(400) DEFAULT NULL,
`groupTask` tinyint(4) DEFAULT NULL,
`importance` varchar(100) DEFAULT NULL,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment