Candidates get sorted descending by their votes within their categories

This commit is contained in:
2020-11-27 23:59:14 +01:00
parent 780448537b
commit ae1ba8b9c5
3 changed files with 65 additions and 41 deletions

View File

@@ -4,7 +4,7 @@ import javax.persistence.*;
@Entity @Entity
@Table(name = "candidates") @Table(name = "candidates")
public class Candidate { public class Candidate implements Comparable<Candidate>{
public Candidate() { public Candidate() {
super(); super();
@@ -41,4 +41,16 @@ public class Candidate {
} }
public Category getCategory() {return category;} public Category getCategory() {return category;}
public void votedFor() {
this.votes += 1;
}
@Override
public int compareTo(Candidate c) {
if (getVotes() == null || c.getVotes() == null) {
return 0;
}
return c.getVotes().compareTo(getVotes());
}
} }

View File

@@ -1,6 +1,7 @@
package com.github.cato447.AbizeitungVotingSystem.entities; package com.github.cato447.AbizeitungVotingSystem.entities;
import javax.persistence.*; import javax.persistence.*;
import java.util.Collections;
import java.util.List; import java.util.List;
@Entity @Entity
@@ -34,6 +35,11 @@ public class Category {
} }
public List<Candidate> getCandidateList() { public List<Candidate> getCandidateList() {
Collections.sort(candidateList);
return candidateList; return candidateList;
} }
public int getCandidateListSize(){
return candidateList.size();
}
} }

View File

@@ -8,50 +8,56 @@
</head> </head>
<body> <body>
<h1>Wähler Liste</h1>
<div class="voterTable"> <ul>
<table class="tableVoters" border="5"> <li>
<tr> <h1>Wähler Liste</h1>
<th>Id</th> <div class="voterTable">
<th>E-Mail</th>
<th>Vote status</th>
</tr>
<tr th:each="voter : ${voters}"> <table class="tableVoters" border="5">
<!-- If voter has voted --> <tr>
<div th:if="${voter.vote_status}"> <th>Id</th>
<td class="voted" th:text="${voter.id}"></td> <th>E-Mail</th>
<td class="voted" th:text="${voter.email}"></td> <th>Vote status</th>
<td class="voted" th:text="${voter.vote_status}"></td> </tr>
<tr th:each="voter : ${voters}">
<!-- If voter has voted -->
<div th:if="${voter.vote_status}">
<td class="voted" th:text="${voter.id}"></td>
<td class="voted" th:text="${voter.email}"></td>
<td class="voted" th:text="${voter.vote_status}"></td>
</div>
<!-- ELSE -->
<div th:unless="${voter.vote_status}">
<td class="notVoted" th:text="${voter.id}"></td>
<td class="notVoted" th:text="${voter.email}"></td>
<td class="notVoted" th:text="${voter.vote_status}"></td>
</tr>
</table>
</div> </div>
</li>
<li>
<h1>Kandidaten Liste</h1>
<div th:each="category : ${categories}" th:id="${category.id}">
<h2 th:text="${category.name}"></h2>
<table class="tableCandidates" border="5">
<tr>
<th>Id</th>
<th>Name</th>
<th>Votes</th>
</tr>
<!-- ELSE --> <tr th:each="candidate: ${category.candidateList}" th:id="${category.id} + '_' + ${candidate.id}">
<div th:unless="${voter.vote_status}"> <td th:text="${candidate.id}"></td>
<td class="notVoted" th:text="${voter.id}"></td> <td th:text="${candidate.name}"></td>
<td class="notVoted" th:text="${voter.email}"></td> <td th:text="${candidate.votes}"></td>
<td class="notVoted" th:text="${voter.vote_status}"></td> </tr>
</tr> </table>
</table> </div>
</div> </li>
</ul>
<h1>Kandidaten Liste</h1>
<div th:each="category : ${categories}" th:id="${category.id}">
<h2 th:text="${category.name}"></h2>
<table class="tableCandidates" border="5">
<tr>
<th>Id</th>
<th>Name</th>
<th>Votes</th>
</tr>
<tr th:each="candidate: ${category.candidateList}" th:id="${category.id} + '_' + ${candidate.id}">
<td th:text="${candidate.id}"></td>
<td th:text="${candidate.name}"></td>
<td th:text="${candidate.votes}"></td>
</tr>
</table>
</div>
</body> </body>
</html> </html>