From 70da687ea488ecfbecffc00b07669039fe221ea2 Mon Sep 17 00:00:00 2001 From: Axel <wiepke@uni-potsdam.de> Date: Mon, 3 Sep 2018 14:14:21 +0200 Subject: [PATCH] fix: #72 contribution rating is done for a group now. feat: first approach of solving the group Tasks (getStudentsInSameGroup works) --- .../gf/interfaces/IPeerAssessment.java | 10 +- .../service/AssessmentDBCommunication.java | 61 +++++-- .../controller/service/FBAssessement.java | 8 +- .../controller/service/PeerAssessment.java | 16 +- .../service/PeerAssessmentDummy.java | 8 +- .../assessment/controller/view/QuizView.java | 20 ++- .../groupfinding/GroupfindingImpl.java | 8 + .../groupfinding/service/GroupDAO.java | 34 ++++ .../modules/groupfinding/view/GroupView.java | 24 +++ .../main/webapp/assets/js/finalAssessment.js | 162 +++++++++++++++--- .../main/webapp/assets/js/rateContribution.js | 26 ++- .../main/webapp/pages/finalAssessments.jsp | 8 +- .../main/webapp/pages/rateContribution.jsp | 3 +- 13 files changed, 325 insertions(+), 63 deletions(-) create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java index d2109728..842513f4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java @@ -1,6 +1,5 @@ package unipotsdam.gf.interfaces; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.ArrayList; @@ -76,7 +75,14 @@ public interface IPeerAssessment { */ void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId); - void postContributionRating(StudentIdentifier student, + /** + * + * @param student + * @return + */ + Integer whichGroupToRate(StudentIdentifier student); + + void postContributionRating(String groupId, String fromPeer, Map<String, Integer> contributionRating); 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 eaa910c0..a8163cb6 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 @@ -51,13 +51,25 @@ class AssessmentDBCommunication { return result; } - ArrayList<Map<String, Double>> getContributionRating(StudentIdentifier student) { - ArrayList<Map<String, Double>> result = new ArrayList<>(); + Integer getGroupByStudent(StudentIdentifier student) { + Integer result; MysqlConnect connect = new MysqlConnect(); connect.connect(); - String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `projectId`=? AND `studentId`=?"; + String mysqlRequest = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=?"; VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId()); + vereinfachtesResultSet.next(); + result = vereinfachtesResultSet.getInt("groupId"); + return result; + } + + ArrayList<Map<String, Double>> getContributionRating(Integer groupId) { + ArrayList<Map<String, Double>> result = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, groupId); boolean next = vereinfachtesResultSet.next(); while (next) { Map<String, Double> contributionRating = new HashMap<>(); @@ -122,20 +134,47 @@ class AssessmentDBCommunication { connect.close(); } - //todo: Studentidentifier student should be replaced by groupID. then you get the students in the group ... - void writeContributionRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + Integer getWhichGroupToRate(StudentIdentifier student){ + Integer result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest1 = "SELECT groupId FROM `groupuser` WHERE `projectId`=? AND `studentId`=? "; + VereinfachtesResultSet vereinfachtesResultSet1 = + connect.issueSelectStatement(mysqlRequest1, student.getProjectId(),student.getStudentId()); + vereinfachtesResultSet1.next(); + Integer groupId = vereinfachtesResultSet1.getInt("groupId"); + + String mysqlRequest2 = "SELECT DISTINCT groupId FROM `groupuser` WHERE `projectId`=? "; + VereinfachtesResultSet vereinfachtesResultSet2 = + connect.issueSelectStatement(mysqlRequest2, student.getProjectId()); + Boolean next = vereinfachtesResultSet2.next(); + result = vereinfachtesResultSet2.getInt("groupId"); + while(next){ + if (vereinfachtesResultSet2.getInt("groupId") == groupId){ + next = vereinfachtesResultSet2.next(); + if (next){ + result = vereinfachtesResultSet2.getInt("groupId"); + } + }else{ + next = vereinfachtesResultSet2.next(); + } + + } + connect.close(); + return result; + } + + void writeContributionRatingToDB(String groupId, String fromStudent, Map<String, Integer> contributionRating) { MysqlConnect connect = new MysqlConnect(); connect.connect(); String mysqlRequest = "INSERT INTO `contributionrating`(" + - "`studentId`, " + - "`projectId`, " + + "`groupId`, " + "`fromPeer`, " + "`dossier`, " + "`research`) " + - "VALUES (?,?,?,?,?,?)"; + "VALUES (?,?,?,?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, - student.getStudentId(), - student.getProjectId(), + groupId, fromStudent, contributionRating.get("dossier"), contributionRating.get("research") @@ -155,7 +194,7 @@ class AssessmentDBCommunication { connect.close(); } - public Map<String, Boolean> getAnswers(String projectId, String question) { + Map<String, Boolean> getAnswers(String projectId, String question) { MysqlConnect connect = new MysqlConnect(); connect.connect(); Map<String, Boolean> result = new HashMap<>(); 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 ef9dd768..9279df51 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 @@ -1,6 +1,5 @@ package unipotsdam.gf.modules.assessment.controller.service; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.ArrayList; @@ -61,7 +60,12 @@ public class FBAssessement extends AssessmentDAO { } @Override - public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + public Integer whichGroupToRate(StudentIdentifier student) { + return null; + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { } 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 820adb76..3aafc6e4 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 @@ -1,8 +1,6 @@ package unipotsdam.gf.modules.assessment.controller.service; -import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.IPeerAssessment; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.*; @@ -64,11 +62,14 @@ public class PeerAssessment implements IPeerAssessment { List<String> students = new AssessmentDBCommunication().getStudents(projectId); //for each student for (String student : students) { + Integer groupId; Performance performance = new Performance(); StudentIdentifier studentIdentifier = new StudentIdentifier(projectId, student); + groupId = new AssessmentDBCommunication().getGroupByStudent(studentIdentifier); List<Integer> answeredQuizzes = new AssessmentDBCommunication().getAnsweredQuizzes(studentIdentifier); ArrayList<Map<String, Double>> workRating = new AssessmentDBCommunication().getWorkRating(studentIdentifier); - ArrayList<Map<String, Double>> contributionRating = new AssessmentDBCommunication().getContributionRating(studentIdentifier); + ArrayList<Map<String, Double>> contributionRating = + new AssessmentDBCommunication().getContributionRating(groupId); performance.setStudentIdentifier(studentIdentifier); performance.setQuizAnswer(answeredQuizzes); performance.setWorkRating(cheatChecker(workRating, cheatCheckerMethods.variance)); @@ -208,10 +209,15 @@ public class PeerAssessment implements IPeerAssessment { } @Override - public void postContributionRating(StudentIdentifier student, + public Integer whichGroupToRate(StudentIdentifier student) { + return new AssessmentDBCommunication().getWhichGroupToRate(student); + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { - new AssessmentDBCommunication().writeContributionRatingToDB(student, fromStudent, contributionRating); + new AssessmentDBCommunication().writeContributionRatingToDB(groupId, fromStudent, contributionRating); } @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 78291cec..120e2603 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 @@ -3,7 +3,6 @@ package unipotsdam.gf.modules.assessment.controller.service; import unipotsdam.gf.assignments.Assignee; import unipotsdam.gf.assignments.NotImplementedLogger; import unipotsdam.gf.interfaces.IPeerAssessment; -import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; import java.util.*; @@ -66,7 +65,12 @@ public class PeerAssessmentDummy implements IPeerAssessment { } @Override - public void postContributionRating(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { + public Integer whichGroupToRate(StudentIdentifier student) { + return null; + } + + @Override + public void postContributionRating(String groupId, String fromStudent, Map<String, Integer> contributionRating) { } 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 e41b15a6..35b0b88e 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 @@ -39,6 +39,7 @@ public class QuizView { } //////////////////////////////////////////funktioniert/////////////////////////////////////// + @POST @Consumes(MediaType.APPLICATION_JSON) @Path("/peerRating/project/{projectId}") @@ -46,15 +47,22 @@ public class QuizView { peer.postPeerRating(peerRatings, projectId); } + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/groupRate/project/{projectId}/student/{studentId}") + public Integer whichGroupToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) + { + StudentIdentifier student = new StudentIdentifier(projectId,studentId); + return peer.whichGroupToRate(student); + } + @POST @Consumes(MediaType.APPLICATION_JSON) - @Path("/contributionRating/projectId/{projectId}/studentId/{studentId}/fromPeer/{fromPeer}") + @Path("/contributionRating/group/{groupId}/fromPeer/{fromPeer}") public void postContributionRating(Map<String, Integer> contributionRatings, - @PathParam("projectId") String projectId, - @PathParam("studentId") String studentId, + @PathParam("groupId") String groupId, @PathParam("fromPeer") String fromPeer) throws IOException { - StudentIdentifier student = new StudentIdentifier(projectId, studentId); - peer.postContributionRating(student, fromPeer, contributionRatings); + peer.postContributionRating(groupId, fromPeer, contributionRatings); } @POST @@ -140,7 +148,7 @@ public class QuizView { return getTotalAssessment(studentIdentifier); } //////////dummy/////////////funktioniert wie geplant////////////////////////////////// - public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { + private ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { return peer.getTotalAssessment(studentIdentifier); } /////////dummy/////////////funktioniert wie geplant////////////////////////////////// diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java index 8987f63c..78f8621f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/GroupfindingImpl.java @@ -3,7 +3,11 @@ package unipotsdam.gf.modules.groupfinding; import unipotsdam.gf.core.management.group.Group; import unipotsdam.gf.core.management.project.Project; import unipotsdam.gf.interfaces.IGroupFinding; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.groupfinding.service.GroupCreationService; +import unipotsdam.gf.modules.groupfinding.service.GroupDAO; +import java.util.ArrayList; import java.util.List; public class GroupfindingImpl implements IGroupFinding { @@ -27,4 +31,8 @@ public class GroupfindingImpl implements IGroupFinding { public void formGroups(GroupFormationMechanism groupFindingMechanism) { } + + public ArrayList<String> getStudentsInSameGroup(StudentIdentifier student){ + return new GroupDAO().getStudentsInSameGroupAs(student); + } } 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 new file mode 100644 index 00000000..ffa94b4e --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupDAO.java @@ -0,0 +1,34 @@ +package unipotsdam.gf.modules.groupfinding.service; + +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; + +import java.util.ArrayList; + +public class GroupDAO { + + public ArrayList<String> getStudentsInSameGroupAs(StudentIdentifier student) { + MysqlConnect connect = new MysqlConnect(); + 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.getProjectId(), student.getStudentId()); + 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.getStudentId())) + result.add(peer); + next2=vereinfachtesResultSet2.next(); + } + connect.close(); + return result; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java new file mode 100644 index 00000000..0a9f8c66 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/view/GroupView.java @@ -0,0 +1,24 @@ +package unipotsdam.gf.modules.groupfinding.view; + +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; +import unipotsdam.gf.modules.groupfinding.GroupfindingImpl; + +import javax.ws.rs.*; +import javax.ws.rs.core.MediaType; +import java.io.IOException; +import java.util.ArrayList; + +@Path("/group") +public class GroupView { + private GroupfindingImpl groupfinding = new GroupfindingImpl(); + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/project/{projectId}/student/{studentId}") + public ArrayList<String> getStudentsInSameGroup(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) throws IOException { + //peer.postPeerRating(peerRatings, projectId); + StudentIdentifier student = new StudentIdentifier(projectId, studentId); + return groupfinding.getStudentsInSameGroup(student); + } + +} diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js index ca491672..d8e9fbcb 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js @@ -1,66 +1,176 @@ -$(document).ready(function() { +$(document).ready(function () { $('#notAllRated').hide(); $(".carousel").carousel({ interval: false }); + buildTablesForPeers(); + $('#assessThePeer').on("click", function () { assessPeer(); }); - $('#btnJournalStudent1').on("click", function(){ - $('#eJournalStudent1').toggle(); - }); - $('#btnJournalStudent2').on("click", function(){ - $('#eJournalStudent2').toggle(); - }); - $('#btnJournalStudent3').on("click", function(){ - $('#eJournalStudent3').toggle(); - }); }); -function assessPeer(){ - let peerStudents =$('.peerStudent'); +function buildTablesForPeers() { + let studentId = $('#user').html().trim(); + let projectId = $('#projectId').html().trim(); + $.ajax({ + url: '../rest/group/project/' + projectId + '/student/' + studentId, + type: 'GET', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + success: function (peers) { + let div = document.getElementById('peerTable'); + for (let peer = 0; peer < peers.length; peer++) { + let tablePeer = document.createElement('DIV'); + if (peer === 0) { + tablePeer.className = "item active"; + } else { + tablePeer.className = "item"; + } + let innerPeerTable = '<table class="table-striped peerStudent" id="' + peers[peer] + '">' + + '<tr>' + + '<td align="center">' + + '<img src="../assets/img/1.jpg" alt="' + peers[peer] + '" style="width:20%;">' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Verantwortungsbewusstsein</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>stark ausgeprägt<input type="radio" value="5" name="responsibility' + peers[peer] + '"></label>' + + '<input type="radio" value="4" name="responsibility' + peers[peer] + '">' + + '<input type="radio" value="3" name="responsibility' + peers[peer] + '">' + + '<input type="radio" value="2" name="responsibility' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="responsibility' + peers[peer] + '">ungenügend</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Anteil am Produkt</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>großer Anteil<input type="radio" value="5" name="partOfWork' + peers[peer] + '"></label>' + + '<input type="radio" value="4" name="partOfWork' + peers[peer] + '">' + + '<input type="radio" value="3" name="partOfWork' + peers[peer] + '">' + + '<input type="radio" value="2" name="partOfWork' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="partOfWork' + peers[peer] + '">geringer Anteil</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Kooperationsbereitschaft</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>sehr kooperativ<input type="radio" value="5" name="cooperation' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="cooperation' + peers[peer] + '">' + + '<input type="radio" value="3" name="cooperation' + peers[peer] + '">' + + '<input type="radio" value="2" name="cooperation' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="cooperation' + peers[peer] + '">nicht kooperativ</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Disskusionsfähigkeit</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>gut kommuniziert und Meinung vertreten<input type="radio" value="5" name="communication' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="communication' + peers[peer] + '">' + + '<input type="radio" value="3" name="communication' + peers[peer] + '">' + + '<input type="radio" value="2" name="communication' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="communication' + peers[peer] + '">keine Meinung und schlecht kommuniziert</label>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<h3>Selbstständigkeit</h3>' + + '</td>' + + '</tr>' + + '<tr>' + + '<td align="center">' + + '<label>selbstständig<input type="radio" value="5" name="autonomous' + peers[peer] + '">' + + '</label>' + + '<input type="radio" value="4" name="autonomous' + peers[peer] + '">' + + '<input type="radio" value="3" name="autonomous' + peers[peer] + '">' + + '<input type="radio" value="2" name="autonomous' + peers[peer] + '">' + + '<label><input type="radio" value="1" name="autonomous' + peers[peer] + '">abhängig</label>' + + '</td>' + + '</tr>' + + '</table>' + + '<div align="center">' + + ' <button class="btn btn-primary" id="btnJournal' + peers[peer] + '">' + + ' zeige Lernzieltagebuch</button>' + + ' <div id="eJournal' + peers[peer] + '">Fasel Blubba Bla</div>' + + '</div>'; + tablePeer.innerHTML = innerPeerTable; + div.appendChild(tablePeer); + $('#btnJournal' + peers[peer]).on("click", function () { + $('#eJournal' + peers[peer]).toggle(); + }); + } + }, + error: function () { + } + } + ); +} + +function assessPeer() { + let peerStudents = $('.peerStudent'); ///////initialize variables/////// - let dataP = new Array(peerStudents.size()); - let rateThis = ['responsibility','partOfWork','cooperation','communication','autonomous']; + let dataP = new Array(peerStudents.length); + let rateThis = ['responsibility', 'partOfWork', 'cooperation', 'communication', 'autonomous']; ///////read values from html/////// - for (let peer=0; peer< peerStudents.length; peer++){ + for (let peer = 0; peer < peerStudents.length; peer++) { let workRating = {}; let peerRating = { "fromPeer": $('#user').html().trim(), "toPeer": peerStudents[peer].id, "workRating": {} }; - for (let rate=0; rate<rateThis.length; rate++ ){ + for (let rate = 0; rate < rateThis.length; rate++) { let category = rateThis[rate]; - workRating[category]=($('input[name='+rateThis[rate]+peerStudents[peer].id+']:checked').val()); + workRating[category] = ($('input[name=' + rateThis[rate] + peerStudents[peer].id + ']:checked').val()); } peerRating.workRating = workRating; //////write values in Post-Variable - dataP[peer]=peerRating; + dataP[peer] = peerRating; } - for (let peer=0; peer< dataP.length; peer++){ - for (let workRating=0; workRating<rateThis.length;workRating++){ - if(dataP[peer].workRating[rateThis[workRating]]===undefined){ + for (let peer = 0; peer < dataP.length; peer++) { + for (let workRating = 0; workRating < rateThis.length; workRating++) { + if (dataP[peer].workRating[rateThis[workRating]] === undefined) { $('#notAllRated').show(); return; } } } - let projectId=$('#projectId').html().trim(); + let projectId = $('#projectId').html().trim(); $.ajax({ - url:'../rest/assessments/peerRating/project/'+projectId, + url: '../rest/assessments/peerRating/project/' + projectId, type: 'POST', headers: { "Content-Type": "application/json", "Cache-Control": "no-cache" }, data: JSON.stringify(dataP), - success: function(){ - location.href="takeQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim(); + success: function () { + location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim(); }, - error: function(a,b,c){ + error: function (a, b, c) { } }); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js index 9d39a066..402b474a 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/rateContribution.js @@ -12,6 +12,7 @@ $(document).ready(function () { minHeight: "80px", }); + whichGroupToRate(); //editor.style = "min-height: 100px"; @@ -21,6 +22,25 @@ $(document).ready(function () { }); }); +function whichGroupToRate(){ + let projectId = $('#projectId').html().trim(); + let studentId = $('#user').html().trim(); + $.ajax({ + url: '../rest/assessments/groupRate/project/'+projectId+'/student/'+studentId, + type: 'GET', + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + success: function (groupId) { + $('#groupId').html(groupId); + }, + error: function () { + + } + }) +} + function safeContributionRating() { let contributions = $('.contributionRating'); ///////initialize variables/////// @@ -31,12 +51,10 @@ function safeContributionRating() { let checkbox = $("#" + contributions[contribution].id + " input:checked"); dataP[checkbox.attr('name')] = checkbox.val(); } - let projectId = $('#projectId').html().trim(); let fromPeer = $('#user').html().trim(); - let toGroup = $('.peerStudent').attr('id'); + let groupId = $('#groupId').html().trim(); $.ajax({ - url: '../rest/assessments/contributionRating/projectId/' + projectId + - '/studentId/' + toGroup + '/fromPeer/' + fromPeer, + url: '../rest/assessments/contributionRating/group/'+groupId+'/fromPeer/' + fromPeer, type: 'POST', headers: { "Content-Type": "application/json", diff --git a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp index 7b9112fe..7b7195bf 100644 --- a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp @@ -1,4 +1,4 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> @@ -49,8 +49,8 @@ Es wurden noch nicht alle Studenten vollständig bewertet </div> - <div class="carousel-inner"> - <div class="item active"> + <div class="carousel-inner" id="peerTable"> + <!--<div class="item active"> <table class="table-striped peerStudent" style="width:70%;border:1px solid; margin:auto;" id="Student1"> <tr> @@ -342,7 +342,7 @@ Fasel Blubba Bla </div> </div> - </div> + </div>--> </div> <!-- Left and right controls --> diff --git a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp index bf7ea1b7..192c9171 100644 --- a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp @@ -17,6 +17,7 @@ <body> <div id="wrapper"> <menu:menu/> + <p id="groupId" hidden>Hier steht jetzt das richtige</p> <div class="page-content-wrapper"> <headLine:headLine/> <div> @@ -25,7 +26,7 @@ <td id="yourContent"> <h2>letzter Schritt im Projekt1 </h2> <table class="table-striped peerStudent" - style="width:100%;border:1px solid; margin:auto;" id="student1"> + style="width:100%;border:1px solid; margin:auto;" id="2"> <tr> <td align="center"> <h3>Gruppe 4</h3> -- GitLab