From f36f58c7ead3b3b89973f3721ddc023f22471e8f Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Wed, 11 Feb 2015 13:44:09 +0100 Subject: [PATCH] Store learning progress type in session object --- .../java/de/thm/arsnova/dao/CouchDBDao.java | 2 ++ .../java/de/thm/arsnova/entities/Session.java | 9 +++++++ .../transport/LearningProgressType.java | 24 +++++++++++++++++++ .../thm/arsnova/services/ISessionService.java | 2 -- .../arsnova/socket/ARSnovaSocketIOServer.java | 16 +++++++++++++ 5 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 598d80da2..cdb87b61d 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -402,6 +402,7 @@ public class CouchDBDao implements IDatabaseDao { sessionDocument.put("courseType", session.getCourseType()); sessionDocument.put("courseId", session.getCourseId()); sessionDocument.put("creationTime", session.getCreationTime()); + sessionDocument.put("learningProgressType", session.getLearningProgressType()); sessionDocument.put("ppAuthorName", session.getPpAuthorName()); sessionDocument.put("ppAuthorMail", session.getPpAuthorMail()); sessionDocument.put("ppUniversity", session.getPpUniversity()); @@ -1290,6 +1291,7 @@ public class CouchDBDao implements IDatabaseDao { s.put("name", session.getName()); s.put("shortName", session.getShortName()); s.put("active", session.isActive()); + s.put("learningProgressType", session.getLearningProgressType()); database.saveDocument(s); session.set_rev(s.getRev()); diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index 78e7dbd38..f93ddbba4 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -37,6 +37,7 @@ public class Session implements Serializable { private String courseId; private List<String> _conflicts; private long creationTime; + private String learningProgressType = "questions"; private String ppAuthorName; private String ppAuthorMail; @@ -186,6 +187,14 @@ public class Session implements Serializable { this.creationTime = creationTime; } + public String getLearningProgressType() { + return learningProgressType; + } + + public void setLearningProgressType(String learningProgressType) { + this.learningProgressType = learningProgressType; + } + public String getPpAuthorName() { return ppAuthorName; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java new file mode 100644 index 000000000..3fa990db5 --- /dev/null +++ b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressType.java @@ -0,0 +1,24 @@ +package de.thm.arsnova.entities.transport; + +public class LearningProgressType { + + private String sessionKeyword; + + private String learningProgressType; + + public String getSessionKeyword() { + return sessionKeyword; + } + + public void setSessionKeyword(String sessionKeyword) { + this.sessionKeyword = sessionKeyword; + } + + public String getLearningProgressType() { + return learningProgressType; + } + + public void setLearningProgressType(String learningProgressType) { + this.learningProgressType = learningProgressType; + } +} diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index aa1250b9b..60c7479e2 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -37,8 +37,6 @@ public interface ISessionService { List<Session> getMySessions(); - List<Session> getPublicPoolSessions(); - List<Session> getMyVisitedSessions(); int countSessions(List<Course> courses); diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java index 2cb748b7c..94fa0787f 100644 --- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java +++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java @@ -48,6 +48,7 @@ import com.corundumstudio.socketio.protocol.PacketType; import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.User; +import de.thm.arsnova.entities.transport.LearningProgressType; import de.thm.arsnova.events.DeleteAnswerEvent; import de.thm.arsnova.events.NewAnswerEvent; import de.thm.arsnova.events.NewInterposedQuestionEvent; @@ -188,6 +189,21 @@ public class ARSnovaSocketIOServer implements ApplicationListener<NovaEvent>, No } }); + server.addEventListener( + "setLearningProgressType", + LearningProgressType.class, + new DataListener<LearningProgressType>() { + @Override + public void onData(SocketIOClient client, LearningProgressType progressType, AckRequest ack) { + final User user = userService.getUser2SocketId(client.getSessionId()); + final de.thm.arsnova.entities.Session session = sessionService.getSession(progressType.getSessionKeyword()); + if (session.isCreator(user)) { + session.setLearningProgressType(progressType.getLearningProgressType()); + sessionService.updateSession(progressType.getSessionKeyword(), session); + } + } + }); + server.addConnectListener(new ConnectListener() { @Override public void onConnect(final SocketIOClient client) { } -- GitLab