diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java index e812e5c103c65723e4ed5c57a00900bb62c95298..2b8f949a142ecae91c0d0a03a05f39a9cea2e52a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java @@ -208,7 +208,7 @@ public class CommunicationService implements ICommunication { @Override public boolean addUserToChatRoom(User user, String roomId) throws RocketChatDownException, UserDoesNotExistInRocketChatException { - return modifyChatRoom(user, roomId, false); + return modifyChatRoom(user, roomId, true); } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/Group.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/Group.java index 0453ce6b9c817164a797f6b4f1834173a4e0f582..f7b551f5fa017eed2ec82e5036251313d9cdb619 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/Group.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/Group.java @@ -11,6 +11,7 @@ public class Group { private List<User> members; private String projectName; private String chatRoomId; + private String name; public Group() { members = new ArrayList<>(); @@ -68,8 +69,6 @@ public class Group { members.add(user); } - - public int getId() { return id; } @@ -88,4 +87,12 @@ public class Group { public int hashCode() { return getId(); } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java index a6e17cb33b7683fc3f95072dd1cfac755d54aed3..deb9f85adc2d84ee420e0c8bd55107c19b14eee7 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java @@ -25,15 +25,15 @@ public class GroupView { private Management iManagement; @Inject - ProjectDAO projectDAO; + private ProjectDAO projectDAO; @Inject - GroupFormationProcess groupFormationProcess; + private GroupFormationProcess groupFormationProcess; @GET @Produces(MediaType.APPLICATION_JSON) - @Path("/all/project/{projectName}") + @Path("/all/projects/{projectName}") public GroupData getGroups(@PathParam("projectName") String projectName) { GroupData data = groupFormationProcess.getOrInitializeGroups(new Project(projectName)); return data; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java index b7393f8dfb84efeb32e0afc6714066ec058d6ca6..04ea415eaa08f0cd170b35d8515acc37d400166f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java @@ -82,6 +82,8 @@ public class GroupfindingImpl implements IGroupFinding { //int numberOf4Groups = getNumberOf4Groups(numberOfUsers); Group group = new Group(); + int i = 1; + group.setName(i + ""); for (User user : usersByProjectName) { if (numberOf3Groups > 0) { numberOf3Groups--; @@ -89,11 +91,15 @@ public class GroupfindingImpl implements IGroupFinding { if (group.getMembers().size() == 3) { result.add(group); group = new Group(); + i++; + group.setName(i + ""); } } else { if (group.getMembers().size() == 4) { result.add(group); group = new Group(); + i++; + group.setName(i + ""); } } group.addMember(user); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java deleted file mode 100644 index 3c893da4af6a345f31c0a20c384d432c6221ebc3..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java +++ /dev/null @@ -1,150 +0,0 @@ -/* -package unipotsdam.gf.modules.groupfinding.service; - -import org.apache.logging.log4j.util.Strings; -import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; -import unipotsdam.gf.modules.group.Group; -import unipotsdam.gf.mysql.MysqlConnect; -import unipotsdam.gf.mysql.VereinfachtesResultSet; -import unipotsdam.gf.util.ResultSetUtil; - -import javax.annotation.ManagedBean; -import javax.annotation.Resource; -import javax.inject.Inject; -import javax.inject.Singleton; -import java.util.*; - -@ManagedBean -@Resource -@Singleton -public class GroupDAO { - - private MysqlConnect connect; - - @Inject - public GroupDAO(MysqlConnect connect) { - this.connect = connect; - } - - public ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) { - connect.connect(); - ArrayList<String> result = new ArrayList<>(); - Integer groupId; - String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?"; - VereinfachtesResultSet vereinfachtesResultSet1 = - connect.issueSelectStatement(mysqlRequest1, student.getProjectName(), student.getUserEmail()); - vereinfachtesResultSet1.next(); - groupId = vereinfachtesResultSet1.getInt("groupId"); - String mysqlRequest2 = "SELECT * FROM `groupuser` WHERE `groupId`=?"; - VereinfachtesResultSet vereinfachtesResultSet2 = - connect.issueSelectStatement(mysqlRequest2, groupId); - boolean next2 = vereinfachtesResultSet2.next(); - while (next2) { - String peer = vereinfachtesResultSet2.getString("studentId"); - if (!peer.equals(student.getUserEmail())) - result.add(peer); - next2 = vereinfachtesResultSet2.next(); - } - connect.close(); - return result; - } - - public void persist(Group group) { - connect.connect(); - List<Group> existingGroups = getExistingEntriesOfGroups(group.get()); - if (Objects.isNull(group.getChatRoomId())) { - group.setChatRoomId(""); - } - String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; - connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId()); - - List<Group> existingGroupsWithNewEntry = getExistingEntriesOfGroups(group.getProjectId()); - existingGroupsWithNewEntry.removeAll(existingGroups); - group.setId(existingGroupsWithNewEntry.get(0).getId()); - for (User groupMember : group.getMembers()) { - String mysqlRequest2 = "INSERT INTO groupuser (`studentId`, `projectId`, `groupId`) values (?,?,?)"; - connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId(), group.getId()); - } - connect.close(); - - } - - public void updateRocketChatUserName(Group group) { - connect.connect(); - String mysqlRequest = "UPDATE groups SET projectId = ?, chatRoomId = ? where id = ?"; - connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId(), group.getId()); - connect.close(); - // TODO: implement updateRocketChatUserName of groupuser if needed later (if member list need to be updated) - } - - public void clearChatRoomIdOfGroup(String chatRoomId) { - connect.connect(); - String mysqlRequest = "updateRocketChatUserName groups SET chatRoomId = ? where chatRoomId = ?"; - connect.issueUpdateStatement(mysqlRequest, "", chatRoomId); - connect.close(); - } - - public Boolean exists(Group group) { - List<Group> existingGroups = getGroupsByProjectId(group.getProjectId()); - return existingGroups.contains(group); - } - - public void addGroupMember(User groupMember, int groupId) { - // TODO: implement - } - - public void deleteGroupMember(User groupMember, int groupId) { - // TODO: implement - } - - public List<Group> getGroupsByProjectId(String projectId) { - connect.connect(); - String mysqlRequest = "SELECT * FROM groups g " + - "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.studentId=u.email " + - "where g.projectId = ?"; - VereinfachtesResultSet vereinfachtesResultSet = - connect.issueSelectStatement(mysqlRequest, projectId); - if (Objects.isNull(vereinfachtesResultSet)) { - connect.close(); - return Collections.emptyList(); - } - HashMap<Integer, Group> groupHashMap = new HashMap<>(); - while (vereinfachtesResultSet.next()) { - fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap); - } - ArrayList<Group> groups = new ArrayList<>(); - groupHashMap.forEach((key, group) -> groups.add(group)); - connect.close(); - return groups; - } - - - - private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { - int id = vereinfachtesResultSet.getInt("id"); - if (existingGroups.containsKey(id)) { - existingGroups.get(id).addMember(ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet)); - } else { - String projectId = vereinfachtesResultSet.getString("projectId"); - User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet); - String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); - ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); - Group group = new Group(id, userList, projectId, chatRoomId); - existingGroups.put(id, group); - } - } - - private List<Group> getExistingEntriesOfGroups(String projectId) { - String mysqlExistingGroup = "SELECT * FROM groups WHERE projectId = ?"; - VereinfachtesResultSet resultSet = connect.issueSelectStatement(mysqlExistingGroup, projectId); - ArrayList<Group> existingGroups = new ArrayList<>(); - while (resultSet.next()) { - int id = resultSet.getInt("id"); - Group existingGroup = new Group(id, projectId); - existingGroups.add(existingGroup); - } - return existingGroups; - } - -} -*/ diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/UserView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/UserView.java index f04516c55bfebb4c26787aefd9c2fbc15aac1b28..4faadc71b8cc3e6a5169dcf4f27aa582a6ab6388 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/UserView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/UserView.java @@ -84,7 +84,7 @@ public class UserView { e.printStackTrace(); return registrationError(); } - return redirectToProjectPage(req, user); + return redirectToProjectPage(user); } @@ -114,17 +114,17 @@ public class UserView { try { Boolean exists = projectCreationProcess.authenticateUser(user, req); if (exists) { - redirectToUserExists(); + user = fillUserFields(user); + return redirectToProjectPage(user); } else { return loginError(); } } catch (UserDoesNotExistInRocketChatException e) { - loginError(); + return loginError(); } catch (RocketChatDownException e) { return loginError(); } - user = fillUserFields(user); - return redirectToProjectPage(req, user); + } @POST @@ -163,7 +163,7 @@ public class UserView { * @return * @throws URISyntaxException */ - private Response redirectToProjectPage(HttpServletRequest req, User user) throws URISyntaxException { + private Response redirectToProjectPage(User user) throws URISyntaxException { String successUrl; if (user.getStudent() != null && user.getStudent()) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java index e7e2ff5b5a6e59fce0d0f3e89dfd2b777430ae2d..2cd418eaaded38648d2ed7086339a1bf27f7c9e4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java @@ -28,8 +28,6 @@ public class GroupFormationProcess { @Inject TaskDAO taskDAO; - - @Inject private DossierCreationProcess dossierCreationProcess; @@ -40,9 +38,7 @@ public class GroupFormationProcess { projectDAO.setGroupFormationMechanism(groupFormationMechanism, project); } - // taskDAO.persistTeacherTask(project, TaskName.FORM_GROUPS_MANUALLY, Phase.GroupFormation); - /** * this method can only be called to change the group formation to manual groups or single * @param groupFormationMechanism diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-preferences.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-preferences.jsp index 674145cd5ce3d0f22f728673b41e59f798885837..84dc20c81818387c51243ebba2f26afc900e1a27 100644 --- a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-preferences.jsp +++ b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-preferences.jsp @@ -10,8 +10,6 @@ <head> <title>Gruppenfindung basierend auf psychometrischen Merkmalen wurde noch nicht implementiert. Klicken sie auf zurück im browser</title> - <span>@Mirjam: Hier kämen deine Einstellungen für den Dozierenden bezüglich der Gruppenfindung basierend auf - Merkmalen</span> </head> <body> diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/process/tasks/GroupPhaseTaskTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/process/tasks/GroupPhaseTaskTest.java index 61e71e22a7fe99d9e37bfa8c8d0f056e36cbe40f..af8fbb9c08de24e86c5e5d8da3df1e23d6143abc 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/process/tasks/GroupPhaseTaskTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/process/tasks/GroupPhaseTaskTest.java @@ -120,10 +120,10 @@ public class GroupPhaseTaskTest { GroupData orInitializeGroups = groupFormationProcess.getOrInitializeGroups(project); assertFalse(orInitializeGroups.getGroups().isEmpty()); - groupFormationProcess.finalize(project); + /* groupFormationProcess.finalize(project);*/ - ArrayList<Task> tasks = taskDAO.getTasks(teacher, project); - assertTrue(tasks != null && tasks.size() > 0); + /*ArrayList<Task> tasks = taskDAO.getTasks(teacher, project); + assertTrue(tasks != null && tasks.size() > 0);*/ /* for (User student : students) { projectCreationProcess.deleteUser(student);