Index: src/main/java/it/finki/charitable/controller/DonationPostController.java
===================================================================
--- src/main/java/it/finki/charitable/controller/DonationPostController.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/controller/DonationPostController.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -127,5 +127,5 @@
                         @RequestParam String sort,
                         @RequestParam(required = false,defaultValue = "") String order) {
-        Page<DonationPost> postList = donationPostService.findPaginated(page,6, sort, order);
+        Page<DonationPost> postList = donationPostService.findPaginated(page,6, sort, order, true);
         if (postList.getSize() == 0) {
             model.addAttribute("noPosts", true);
@@ -204,4 +204,5 @@
         reasonService.save(reason);
         reportPost.getReasons().add(reason);
+        reportPost.setNumReports(reportPost.getNumReports() + 1);
         reportPostService.save(reportPost);
         return String.format("redirect:/post?postid=%d", postid);
Index: src/main/java/it/finki/charitable/controller/ModeratorController.java
===================================================================
--- src/main/java/it/finki/charitable/controller/ModeratorController.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/controller/ModeratorController.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -6,4 +6,5 @@
 import it.finki.charitable.services.ReasonService;
 import it.finki.charitable.services.ReportPostService;
+import org.springframework.data.domain.Page;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
@@ -33,10 +34,14 @@
 
     @RequestMapping("moderator/approval")
-    public String approval(Model model) {
-        List<DonationPost> postList = donationPostService.findAllByApproved(false);
-        if (postList.size() == 0) {
+    public String approval(Model model,
+                           @RequestParam int page,
+                           @RequestParam String sort,
+                           @RequestParam(required = false,defaultValue = "") String order) {
+        Page<DonationPost> postList = donationPostService.findPaginated(page, 6, sort, order, false);
+        if (postList.getSize() == 0) {
             model.addAttribute("noPosts", true);
             return "postApproval";
         }
+        model.addAttribute("totalPages", postList.getTotalPages());
         model.addAttribute("postList", postList);
         return "postApproval";
@@ -92,7 +97,10 @@
 
     @RequestMapping("/moderator/report")
-    public String reportedPosts(Model model) {
-        List<ReportPost> postList = reportPostService.findAll();
-        if (postList.size() == 0) {
+    public String reportedPosts(Model model,
+                                @RequestParam int page,
+                                @RequestParam String sort,
+                                @RequestParam(required = false,defaultValue = "") String order) {
+        Page<ReportPost> postList = reportPostService.findAll(page, 6, sort, order);
+        if (postList.getSize() == 0) {
             model.addAttribute("noPosts", true);
             return "reportedPosts";
Index: src/main/java/it/finki/charitable/entities/ReportPost.java
===================================================================
--- src/main/java/it/finki/charitable/entities/ReportPost.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/entities/ReportPost.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -2,4 +2,5 @@
 
 import javax.persistence.*;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
@@ -32,4 +33,6 @@
     private List<Reason> reasons = new ArrayList<>();
 
+    private int numReports = 0;
+
     public Long getId() {
         return id;
@@ -55,3 +58,11 @@
         this.reasons = reasons;
     }
+
+    public int getNumReports() {
+        return numReports;
+    }
+
+    public void setNumReports(int numReports) {
+        this.numReports = numReports;
+    }
 }
Index: src/main/java/it/finki/charitable/repository/ReportPostRepository.java
===================================================================
--- src/main/java/it/finki/charitable/repository/ReportPostRepository.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/repository/ReportPostRepository.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -3,4 +3,6 @@
 import it.finki.charitable.entities.DonationPost;
 import it.finki.charitable.entities.ReportPost;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
Index: src/main/java/it/finki/charitable/security/SecurityConfig.java
===================================================================
--- src/main/java/it/finki/charitable/security/SecurityConfig.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/security/SecurityConfig.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -67,5 +67,5 @@
         RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
         if(authentication.getAuthorities().toString().contains("MODERATOR")) {
-            redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/moderator/approval");
+            redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/moderator/approval?page=1&sort=id");
         } else {
             redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/");
Index: src/main/java/it/finki/charitable/services/DonationPostService.java
===================================================================
--- src/main/java/it/finki/charitable/services/DonationPostService.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/services/DonationPostService.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -54,9 +54,9 @@
     }
 
-    public Page<DonationPost> findPaginated(int pageNo, int pageSize, String sort, String order) {
+    public Page<DonationPost> findPaginated(int pageNo, int pageSize, String sort, String order, boolean approved) {
         Sort s = Sort.by(sort);
         s = order.equals("asc") ? s.ascending() : s.descending();
         Pageable pageable = PageRequest.of(pageNo - 1, pageSize, s);
-        return donationPostRepository.findAllByApproved(pageable, true);
+        return donationPostRepository.findAllByApproved(pageable, approved);
     }
 }
Index: src/main/java/it/finki/charitable/services/ReportPostService.java
===================================================================
--- src/main/java/it/finki/charitable/services/ReportPostService.java	(revision 276a8b675a5b68c01f48d3efcbfe41e2f836ed6c)
+++ src/main/java/it/finki/charitable/services/ReportPostService.java	(revision 0c3762577315aca1565b0a288c0a9a46f79e55d2)
@@ -5,4 +5,8 @@
 import it.finki.charitable.entities.ReportPost;
 import it.finki.charitable.repository.ReportPostRepository;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 
@@ -18,6 +22,9 @@
     }
 
-    public List<ReportPost> findAll() {
-        return reportPostRepository.findAll();
+    public Page<ReportPost> findAll(int pageNo, int pageSize, String sort, String order) {
+        Sort s = Sort.by(sort);
+        s = order.equals("asc") ? s.ascending() : s.descending();
+        Pageable pageable = PageRequest.of(pageNo - 1, pageSize, s);
+        return reportPostRepository.findAll(pageable);
     }
 
