diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java index a117805e8460eb08fa89a48794e2cd3f5f966575..18a02b758e8e7a54572516679abd7518321962f4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java @@ -72,9 +72,8 @@ public interface IPeerAssessment { * * @param peerRatings * @param projectId - * @param groupId */ - void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId); + void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId); /** * diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java index 80d35be34f8e6208f5c436d267e4d6e93b391129..56d52b14f3f51c32a8d8f16608bf62f0f4c2111d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/PeerRating.java @@ -1,18 +1,19 @@ package unipotsdam.gf.modules.assessment.controller.model; import java.util.Arrays; +import java.util.Map; public class PeerRating { private String fromPeer; private String toPeer; - private int[] workRating; + private Map<String, Integer> workRating; @Override public String toString() { return "PeerRating{" + "fromPeer='" + fromPeer + '\'' + ", toPeer='" + toPeer + '\'' + - ", workRating=" + Arrays.toString(workRating) + + ", workRating=" + workRating + '}'; } @@ -35,15 +36,15 @@ public class PeerRating { this.toPeer = toPeer; } - public int[] getWorkRating() { + public Map<String, Integer> getWorkRating() { return workRating; } - public void setWorkRating(int[] workRating) { + public void setWorkRating(Map<String, Integer> workRating) { this.workRating = workRating; } - public PeerRating(String fromPeer, String toPeer, int[] workRating) { + public PeerRating(String fromPeer, String toPeer, Map<String, Integer> workRating) { this.fromPeer = fromPeer; this.toPeer = toPeer; this.workRating = workRating; diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java index 891a69b0c9227ce992e7c31bb774209683ce68ae..c5bdd8cb17e438fcfc4865cb9e97de9476b7a325 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Performance.java @@ -7,8 +7,8 @@ import java.util.Map; public class Performance { private StudentIdentifier studentIdentifier; private List<Integer> quizAnswer; - private Map workRating; - private Map contributionRating; + private Map<String, Double> workRating; + private Map<String, Double> contributionRating; public Performance(){} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java index fdb646c34db9321929ffd62888cd49b742bec384..01c47b2a18079ec18a6f951aa2d39f67eae10662 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java @@ -25,7 +25,7 @@ class AssessmentDBCommunication { connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId()); boolean next = vereinfachtesResultSet.next(); while (next) { - Map workRating = new HashMap(); + Map<String, Double> workRating = new HashMap<>(); for (String category : Categories.workRatingCategories) { workRating.put(category, (double) vereinfachtesResultSet.getInt(category)); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java index 9f01ce655bce329dda89c93b75f081eeb7c7dcf2..e094756066efdd657653c45edee4f412b389ccf1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java @@ -55,7 +55,7 @@ public class FBAssessement extends AssessmentDAO { } @Override - public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) { + public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) { } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java index 7e1ece5fff42dae1492de31ba3516cf641d73ea2..fc8072575281be326b3bd16fb50320bff987044d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java @@ -199,8 +199,11 @@ public class PeerAssessment implements IPeerAssessment { @Override - public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) { - + public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) { + for (PeerRating peer: peerRatings){ + StudentIdentifier student = new StudentIdentifier(projectId, peer.getToPeer()); + new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating()); + } } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java index c5949b5040e16b436bffebbaaa70204b778cd057..812eab9a40cdaaaea5d7c2b35b353b0028003e8c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java @@ -61,7 +61,7 @@ public class PeerAssessmentDummy implements IPeerAssessment { } @Override - public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) { + public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) { int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java index 486618bf184f07dec9ed995e1d81b17744b7d028..db44fb94a0d76c5e197ea8399e5a99e594abd73c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java @@ -1,12 +1,17 @@ package unipotsdam.gf.modules.assessment.controller.view; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.util.JSONPObject; +import org.glassfish.jersey.server.JSONP; import unipotsdam.gf.interfaces.IPeerAssessment; import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; +import java.lang.reflect.*; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; @@ -14,13 +19,12 @@ import java.util.List; import java.util.Map; @Path("/assessments") -public class QuizView implements IPeerAssessment { +public class QuizView { //private static IPeerAssessment peer = new PeerAssessmentDummy(); //TestSubject private static IPeerAssessment peer = new PeerAssessment(); //correct DB-conn and stuff @GET @Produces(MediaType.APPLICATION_JSON) @Path("/project/{projectId}/quiz/{quizId}/author/{author}") - @Override public Quiz getQuiz(@PathParam("projectId") String projectId, @PathParam("quizId") String quizId, @PathParam("author") String author) { try{ String question=java.net.URLDecoder.decode(quizId,"UTF-8"); @@ -33,7 +37,6 @@ public class QuizView implements IPeerAssessment { @GET @Produces(MediaType.APPLICATION_JSON) @Path("/project/{projectId}/quiz") - @Override public ArrayList<Quiz> getQuiz(@PathParam("projectId") String projectId) { return peer.getQuiz(projectId); } @@ -41,14 +44,28 @@ public class QuizView implements IPeerAssessment { @POST @Consumes(MediaType.APPLICATION_JSON) - @Path("/peer/project/{projectId}/group/{groupId}") - @Override - public void postPeerRating(ArrayList<PeerRating> peerRatings,@PathParam("projectId") String projectId, @PathParam("groupId") String groupId){ - peer.postPeerRating(peerRatings, projectId,groupId); - //todo: checkout the POST-variable. should be peerRating but its null atm. + @Path("/peerRating/project/{projectId}") + public void postPeerRating(String peerRatings, @PathParam("projectId") String projectId) throws IOException { + ArrayList data = + new ObjectMapper().readValue(peerRatings, ArrayList.class); + ArrayList<PeerRating> result = new ArrayList<>(); + for (Object peer: data){ + try{ + //todo: What the fuck? =) kA was dieses getField is supposed to do aber ich hätte gern fromPeer, toPeer und workRating aus dem Objekt + Object what = peer.getClass(); + Field[] the = ((Class) what).getFields(); + Field from = peer.getClass().getField("0"); + Field to = peer.getClass().getField("1"); + Field workRating = peer.getClass().getField("2"); + }catch(Exception e){ + return; + } + + PeerRating rating = new PeerRating(); + } + peer.postPeerRating(result, projectId); } - @Override public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) { } @@ -56,7 +73,6 @@ public class QuizView implements IPeerAssessment { @POST @Consumes(MediaType.APPLICATION_JSON) @Path("/quiz/{quizId}") - @Override public void deleteQuiz(@PathParam("quizId") String quizId) { try { String question = java.net.URLDecoder.decode(quizId, "UTF-8"); @@ -70,13 +86,11 @@ public class QuizView implements IPeerAssessment { @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_JSON) @Path("/assessment") - @Override public void addAssessmentDataToDB(Assessment assessment) { peer.addAssessmentDataToDB(assessment); } - @Override - public Assessment getAssessmentDataFromDB(StudentIdentifier student){ + private Assessment getAssessmentDataFromDB(StudentIdentifier student){ return peer.getAssessmentDataFromDB(student); } @@ -93,7 +107,6 @@ public class QuizView implements IPeerAssessment { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/quiz") - @Override public void createQuiz(StudentAndQuiz studentAndQuiz) { peer.createQuiz(studentAndQuiz); } @@ -103,7 +116,6 @@ public class QuizView implements IPeerAssessment { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/calculate") - @Override public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) { return peer.calculateAssessment(totalPerformance); } @@ -121,7 +133,6 @@ public class QuizView implements IPeerAssessment { @GET @Produces(MediaType.APPLICATION_JSON) @Path("/mean/project/{projectId}") - @Override public int meanOfAssessment(@PathParam("projectId") String ProjectId) { return peer.meanOfAssessment(ProjectId); } ///////////////////////////////return 0////////////////////////////////// @@ -134,7 +145,6 @@ public class QuizView implements IPeerAssessment { return getTotalAssessment(studentIdentifier); } //////////dummy/////////////funktioniert wie geplant////////////////////////////////// - @Override public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { return peer.getTotalAssessment(studentIdentifier); } /////////dummy/////////////funktioniert wie geplant////////////////////////////////// @@ -155,23 +165,23 @@ public class QuizView implements IPeerAssessment { quiz.add(1); quiz.add(0); quiz.add(1); - Map work = new HashMap<String, Double>(); + Map<String, Double> work = new HashMap<>(); work.put("responsibility", 1.); work.put("partOfWork", 1.); work.put("cooperation", 1.); work.put("communication", 1.); work.put("autonomous", 1.); - Map work2 = new HashMap<String, Double>(); + Map<String, Double> work2 = new HashMap<>(); work2.put("responsibility", 3.); work2.put("partOfWork", 4.); work2.put("cooperation", 5.); work2.put("communication", 3.); work2.put("autonomous", 4.); - Map contribution1 = new HashMap<String, Double>(); + Map<String, Double> contribution1 = new HashMap<>(); contribution1.put("Dossier", 4.); contribution1.put("eJournal", 2.); contribution1.put("research", 4.); - Map contribution2 = new HashMap<String, Double>(); + Map<String, Double> contribution2 = new HashMap<>(); contribution2.put("Dossier", 2.); contribution2.put("eJournal", 3.); contribution2.put("research", 4.); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js index 6af08b9e84c647d9fcf13f9d0bb4e988158a6346..664e145a99f13d018c73365c00bf09db3f292d00 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js @@ -10,20 +10,21 @@ $(document).ready(function() { function assessPeer(){ ///////initialize variables/////// - var peerRating = { - "fromPeer": $('#user').html().trim(), - "toPeer": "", - "workRating": [] - }; var dataP = []; - var workRating = []; + var workRating = {}; var rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous']; ///////read values from html/////// var peerStudents =$('.peerStudent'); for (var peer=0; peer< peerStudents.length; peer++){ + var peerRating = { + "fromPeer": $('#user').html().trim(), + "toPeer": peerStudents[peer].id, + "workRating": {} + }; for (var rate=0; rate<rateThis.length; rate++ ){ - workRating.push($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val()); + var category = rateThis[rate]; + workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val()); } for (var i=0; i<workRating.length; i++){ if(workRating[i]===undefined){ @@ -31,15 +32,14 @@ function assessPeer(){ return; } } - peerRating.toPeer = peerStudents[peer].id; peerRating.workRating = workRating; workRating=[]; //////write values in Post-Variable dataP.push(peerRating); } - dataP.push(peerRating); + var projectId=$('#projectId').html().trim(); $.ajax({ - url:'../rest/assessments/peer/project/1/group/1', + url:'../rest/assessments/peerRating/project/'+projectId, type: 'POST', headers: { "Content-Type": "application/json",