Skip to content
Snippets Groups Projects

Add DTO for Request creation to implement min question length

Files

@@ -28,30 +28,12 @@ import javax.servlet.http.HttpServletRequest;
@@ -28,30 +28,12 @@ import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import javax.validation.Valid;
import nl.tudelft.ewi.queue.annotation.AuthenticatedUser;
import nl.tudelft.ewi.queue.annotation.AuthenticatedUser;
import nl.tudelft.ewi.queue.model.Assignment;
import nl.tudelft.ewi.queue.model.*;
import nl.tudelft.ewi.queue.model.Course;
import nl.tudelft.ewi.queue.repository.*;
import nl.tudelft.ewi.queue.model.FirstYearMentorGroup;
import nl.tudelft.ewi.queue.model.Group;
import nl.tudelft.ewi.queue.model.Lab;
import nl.tudelft.ewi.queue.model.Request;
import nl.tudelft.ewi.queue.model.RequestEntity;
import nl.tudelft.ewi.queue.model.RequestSlot;
import nl.tudelft.ewi.queue.model.RequestType;
import nl.tudelft.ewi.queue.model.Role;
import nl.tudelft.ewi.queue.model.Room;
import nl.tudelft.ewi.queue.model.User;
import nl.tudelft.ewi.queue.repository.AssignmentRepository;
import nl.tudelft.ewi.queue.repository.CourseRepository;
import nl.tudelft.ewi.queue.repository.FirstYearMentorGroupRepository;
import nl.tudelft.ewi.queue.repository.GroupRepository;
import nl.tudelft.ewi.queue.repository.LabRepository;
import nl.tudelft.ewi.queue.repository.RequestTypeRepository;
import nl.tudelft.ewi.queue.repository.RoleRepository;
import nl.tudelft.ewi.queue.repository.RoomRepository;
import nl.tudelft.ewi.queue.repository.UserRepository;
import nl.tudelft.ewi.queue.service.LabService;
import nl.tudelft.ewi.queue.service.LabService;
import nl.tudelft.ewi.queue.service.RequestService;
import nl.tudelft.ewi.queue.service.RequestService;
import nl.tudelft.ewi.queue.validator.LabValidator;
import nl.tudelft.ewi.queue.validator.LabValidator;
 
import nl.tudelft.ewi.queue.viewmodel.RequestCreateModel;
import org.slf4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.LoggerFactory;
@@ -141,7 +123,8 @@ public class LabController {
@@ -141,7 +123,8 @@ public class LabController {
requestsForLab = lab.requestsBy(user);
requestsForLab = lab.requestsBy(user);
}
}
Collections.reverse(requestsForLab); // This way, the newest is on top, just like normal request page
// This way, the newest is on top, just like normal request page
 
Collections.reverse(requestsForLab);
model.addAttribute("lab", lab);
model.addAttribute("lab", lab);
model.addAttribute("requestsForLab", requestsForLab);
model.addAttribute("requestsForLab", requestsForLab);
@@ -152,7 +135,8 @@ public class LabController {
@@ -152,7 +135,8 @@ public class LabController {
@RequestMapping(value = "/lab/{id}/enqueue", method = RequestMethod.GET)
@RequestMapping(value = "/lab/{id}/enqueue", method = RequestMethod.GET)
@PreAuthorize("@permissionService.canEnqueueSelfForLab(principal, #id)")
@PreAuthorize("@permissionService.canEnqueueSelfForLab(principal, #id)")
public String enqueue(@PathVariable("id") Long id, Model model) {
public String enqueue(@AuthenticatedUser User user,
 
@PathVariable("id") Long id, Model model) {
Lab lab = labService.getLab(id);
Lab lab = labService.getLab(id);
if (lab.getSignOffIntervals()) {
if (lab.getSignOffIntervals()) {
@@ -161,7 +145,7 @@ public class LabController {
@@ -161,7 +145,7 @@ public class LabController {
model.addAttribute("lab", lab);
model.addAttribute("lab", lab);
model.addAttribute("course", lab.getCourse());
model.addAttribute("course", lab.getCourse());
model.addAttribute("request", new Request());
model.addAttribute("request", new RequestCreateModel());
return "lab/enqueue";
return "lab/enqueue";
}
}
@@ -169,27 +153,28 @@ public class LabController {
@@ -169,27 +153,28 @@ public class LabController {
@RequestMapping(value = "/lab/{id}/enqueue", method = RequestMethod.POST)
@RequestMapping(value = "/lab/{id}/enqueue", method = RequestMethod.POST)
@PreAuthorize("@permissionService.canEnqueueSelfForLab(principal, #id)")
@PreAuthorize("@permissionService.canEnqueueSelfForLab(principal, #id)")
public String enqueue(@AuthenticatedUser User user, @PathVariable("id") Long id,
public String enqueue(@AuthenticatedUser User user, @PathVariable("id") Long id,
@Valid Request request, BindingResult bindingResult, Model model) {
@Valid RequestCreateModel requestCreateModel, BindingResult bindingResult, Model model) {
Lab lab = labService.getLab(id);
Lab lab = labService.getLab(id);
if (bindingResult.hasErrors() || !lab.getRooms().contains(request.getRoom())) {
requestCreateModel.setLab(lab);
 
if (lab.getCourse().getHasGroups()) {
 
Group group = lab.getCourse().getGroup(user);
 
requestCreateModel.setRequestEntity(group);
 
} else {
 
requestCreateModel.setRequestEntity(user);
 
}
 
 
if (bindingResult.hasErrors() || requestCreateModel.hasErrors()) {
model.addAttribute("lab", lab);
model.addAttribute("lab", lab);
model.addAttribute("course", lab.getCourse());
model.addAttribute("course", lab.getCourse());
 
model.addAttribute("request", requestCreateModel);
if (lab.getSignOffIntervals()) {
if (lab.getSignOffIntervals()) {
model.addAttribute("timeslots", labService.getIntervalsForLab(lab));
model.addAttribute("timeslots", labService.getIntervalsForLab(lab));
}
}
return "lab/enqueue";
return "lab/enqueue";
}
}
if (lab.getCourse().getHasGroups()) {
labService.enqueue(requestCreateModel.convert());
Group group = lab.getCourse().getGroup(user);
request.setRequestEntity(group);
} else {
request.setRequestEntity(user);
}
request.setLab(lab);
labService.enqueue(request);
return "redirect:/lab/" + id;
return "redirect:/lab/" + id;
}
}
Loading