Skip to content
Snippets Groups Projects

Resolve "Give student edition view some actual content"

Files

@@ -20,6 +20,7 @@ package nl.tudelft.submit.controller;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -39,9 +40,11 @@ import nl.tudelft.submit.dto.patch.AddMemberDTO;
import nl.tudelft.submit.dto.patch.EditionParticipantImportDTO;
import nl.tudelft.submit.dto.patch.SubmitEditionPatchDTO;
import nl.tudelft.submit.dto.view.labracore.MemberViewDTO;
import nl.tudelft.submit.dto.view.labracore.SubmitAssignmentSummaryDTO;
import nl.tudelft.submit.dto.view.labracore.SubmitEditionViewDTO;
import nl.tudelft.submit.dto.view.labracore.SubmitModuleViewDTO;
import nl.tudelft.submit.enums.GradableType;
import nl.tudelft.submit.model.SubmitEdition;
import nl.tudelft.submit.security.AuthorizationService;
import nl.tudelft.submit.service.*;
@@ -174,6 +177,11 @@ public class EditionController {
gradeService
.getEditionScore(new PersonIdDTO().id(person.getId()), new EditionIdDTO().id(id))
.map(gradeService::getScoreDisplayString).orElse(null));
model.addAttribute("upcoming", edition.getModules().stream()
.flatMap(m -> m.getAssignments().stream())
.filter(a -> a.getDeadline() != null)
.filter(a -> a.getDeadline().isAfter(LocalDateTime.now()))
.max(Comparator.comparing(SubmitAssignmentSummaryDTO::getDeadline)).orElse(null));
}
model.addAttribute("edition", edition);
@@ -254,8 +262,10 @@ public class EditionController {
@PreAuthorize("@authorizationService.canViewEdition(#id)")
public String getContact(@PathVariable Long id, Model model) {
EditionRolesDetailsDTO edition = editionService.getEdition(id);
SubmitEdition sEdition = editionService.getSubmitEdition(id).orElse(new SubmitEdition());
model.addAttribute("edition", edition);
model.addAttribute("sEdition", sEdition);
return "edition/contact";
}
@@ -455,6 +465,25 @@ public class EditionController {
return "redirect:/edition/" + id;
}
@GetMapping("/{id}/edit-contact")
@PreAuthorize("@authorizationService.canEditEdition(#id)")
public String editContactPage(@PathVariable Long id, Model model) {
SubmitEdition edition = editionService.getOrCreateSubmitEdition(id);
model.addAttribute("edition", edition);
model.addAttribute("patch", new SubmitEditionPatchDTO());
return "edition/edit_contact";
}
@PatchMapping("/{id}/submit")
@PreAuthorize("@authorizationService.canEditEdition(#id)")
public String editSubmitEdition(@PathVariable Long id,
@ModelAttribute("patch") SubmitEditionPatchDTO patch) {
editionService.patchSubmitEdition(id, patch);
return "redirect:/edition/{id}";
}
/**
* Sets the grade formula of an edition.
*
@@ -471,8 +500,9 @@ public class EditionController {
formula.setGradableType(GradableType.EDITION);
formulaService.createOrUpdateFormula(formula);
editionService.patchSubmitEdition(new EditionIdDTO().id(id),
new SubmitEditionPatchDTO(dto.getPassingScore()));
editionService.patchSubmitEdition(id,
SubmitEditionPatchDTO.builder().passingScore(dto.getPassingScore())
.build());
return "redirect:/edition/{id}";
}
Loading