Skip to content
Snippets Groups Projects

Resolve "Follow-up from ""Create a post-lab statistics page"""

Files

@@ -17,18 +17,11 @@
*/
package nl.tudelft.ewi.queue.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
import nl.tudelft.ewi.queue.model.Assignment;
import nl.tudelft.ewi.queue.model.Lab;
import nl.tudelft.ewi.queue.model.Request;
import nl.tudelft.ewi.queue.model.Room;
import nl.tudelft.ewi.queue.service.LabStatusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -37,6 +30,12 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
@RestController
@Validated
public class CourseStatusController {
@@ -48,12 +47,12 @@ public class CourseStatusController {
* A data class to be sent over a network. This class distinguishes buckets and data. Buckets are the
* start positions of each bucket in a histogram and the data is what is to be displayed in each bucket.
*/
public class MultiFrequencies {
public static class MultiFrequencies {
public List<Long> buckets;
public Map<String, Long> data;
public Map<String, List<Long>> data;
MultiFrequencies(List<Long> buckets, Map<String, Long> data) {
MultiFrequencies(List<Long> buckets, Map<String, List<Long>> data) {
this.buckets = buckets;
this.data = data;
}
@@ -78,13 +77,13 @@ public class CourseStatusController {
@RequestParam(required = false, defaultValue = "") List<Lab> labs,
@RequestParam(required = false, defaultValue = "") List<Assignment> assignments,
@RequestParam(required = false, defaultValue = "") List<Room> rooms,
@RequestParam(required = false, defaultValue = "4") int nBuckets) {
@RequestParam(required = false, defaultValue = "5") int nBuckets) {
List<Request> requests = lss.getFilteredRequests(labs, assignments, rooms);
TreeSet<Long> buckets = lss.createBucketsOverCourse(labs, nBuckets);
return new MultiFrequencies(
buckets.stream().sorted().collect(Collectors.toList()),
new HashMap() {
new HashMap<>() {
{
put("created", lss.countCreatedRequestsInBuckets(buckets, requests));
put("open", lss.countOpenRequestsInBuckets(buckets, requests));
@@ -112,7 +111,7 @@ public class CourseStatusController {
@RequestParam(required = false, defaultValue = "") List<Room> rooms) {
List<Request> requests = lss.getFilteredRequests(labs, assignments, rooms);
return new HashMap<String, Long>() {
return new HashMap<>() {
{
put("pending", lss.countWhere(requests, Request::isPending));
put("processing", lss.countWhere(requests, Request::isProcessing));
@@ -144,7 +143,7 @@ public class CourseStatusController {
@RequestParam(required = false, defaultValue = "") List<Room> rooms) {
List<Request> requests = lss.getFilteredRequests(labs, assignments, rooms);
return new HashMap<String, Object>() {
return new HashMap<>() {
{
put("lab-static-noStudents", lss.countDistinctUsers(requests));
put("lab-static-noAssistants", lss.countDistinctAssistants(requests));
Loading