From 4e14370d4ffdd3dff1f3b56032812a2c2e893d09 Mon Sep 17 00:00:00 2001 From: LeoMoulin Date: Fri, 19 Apr 2024 19:25:28 +0200 Subject: [PATCH] Add the exemptions gestion and improve the navigation between requests --- .../Inscription/RequestsController.java | 22 ++++ .../ExemptionsRequestRepository.java | 2 +- .../Tables/Inscription/ExemptionsRequest.java | 4 + .../Inscription/AboutChangeCurriculum.vue | 15 ++- .../src/Apps/Inscription/AboutExemption.vue | 116 ++++++++++++++++++ .../src/Apps/Inscription/AboutRequest.vue | 7 +- .../src/Apps/Inscription/ManageRequests.vue | 17 ++- frontend/src/rest/requests.js | 8 ++ 8 files changed, 178 insertions(+), 13 deletions(-) create mode 100644 frontend/src/Apps/Inscription/AboutExemption.vue diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/Inscription/RequestsController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/Inscription/RequestsController.java index 0d9dbd5..74d1bf0 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/Inscription/RequestsController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/Inscription/RequestsController.java @@ -88,6 +88,28 @@ public class RequestsController { return new ResponseEntity<>(toReturn, HttpStatus.OK); } + @GetMapping(value = "/exemptionsreq/{id}") + public ResponseEntity getExemptionRequestbyId(@RequestHeader("Authorization") String token, @PathVariable long id){ + if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token)) + return new UnauthorizedResponse<>(null); + + ExemptionsRequest exemptionsRequest = err.findById(id); + + return new ResponseEntity<>(exemptionsRequest, HttpStatus.OK); + } + + @PatchMapping(value = "/exemptionsreq/{id}/{newstate}") + public ResponseEntity changeExemptionReqState(@RequestHeader("Authorization") String token, @PathVariable long id, @PathVariable RequestState newstate){ + if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary,Role.InscriptionService},token)) + return new UnauthorizedResponse<>(null); + + ExemptionsRequest exemptionsRequest = err.findById(id); + exemptionsRequest.setState(newstate); + err.save(exemptionsRequest); + + return new ResponseEntity<>(HttpStatus.OK); + } + //Get all the scholarships requests @GetMapping(value = "/scholarshipreq") public ResponseEntity> getAllScholarshipRequests(@RequestHeader("Authorization") String token){ diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/Inscription/ExemptionsRequestRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/Inscription/ExemptionsRequestRepository.java index 3f66e80..d644ef1 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Repositories/Inscription/ExemptionsRequestRepository.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/Inscription/ExemptionsRequestRepository.java @@ -4,5 +4,5 @@ import org.springframework.data.repository.CrudRepository; import ovh.herisson.Clyde.Tables.Inscription.ExemptionsRequest; public interface ExemptionsRequestRepository extends CrudRepository { - + ExemptionsRequest findById(long id); } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Inscription/ExemptionsRequest.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Inscription/ExemptionsRequest.java index 75ee926..8942bb6 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Tables/Inscription/ExemptionsRequest.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Inscription/ExemptionsRequest.java @@ -80,4 +80,8 @@ public class ExemptionsRequest { public void setDate(Date date) { this.date = date; } + + public int getId() { + return id; + } } diff --git a/frontend/src/Apps/Inscription/AboutChangeCurriculum.vue b/frontend/src/Apps/Inscription/AboutChangeCurriculum.vue index 82c850d..9a3f40d 100644 --- a/frontend/src/Apps/Inscription/AboutChangeCurriculum.vue +++ b/frontend/src/Apps/Inscription/AboutChangeCurriculum.vue @@ -17,10 +17,12 @@ const req = ref(await getChangeCurrReqById(props.reqId)) const user = await getSelf() //0 liste, 1 profil -const windowstate = ref(0); +const localwindowstate = ref(0); const tag = req.value.user.regNo +const windowState = defineModel("windowState") + async function uploadandrefreshChangeRequest(state){ await editChangeCurrReq(req.value.id, state); } @@ -32,7 +34,7 @@ async function editChangeCurrReqTeacherApproval(state){ diff --git a/frontend/src/Apps/Inscription/AboutExemption.vue b/frontend/src/Apps/Inscription/AboutExemption.vue new file mode 100644 index 0000000..366c32a --- /dev/null +++ b/frontend/src/Apps/Inscription/AboutExemption.vue @@ -0,0 +1,116 @@ + + + + + + \ No newline at end of file diff --git a/frontend/src/Apps/Inscription/AboutRequest.vue b/frontend/src/Apps/Inscription/AboutRequest.vue index ec8ed74..c6d15df 100644 --- a/frontend/src/Apps/Inscription/AboutRequest.vue +++ b/frontend/src/Apps/Inscription/AboutRequest.vue @@ -16,6 +16,8 @@ const user = await getSelf(); const list = ref(false); const externalCurriculum = await getExternalCurriculumByInscrReq(request.id) +//Get the parent page windowState to display the correct button +const windowState = defineModel("windowState") function getPP(){ if(request.profilePictureUrl === null){ return "/Clyde.png" @@ -61,12 +63,15 @@ async function editEquivalence(id, newstate){ +
+ +
- +
diff --git a/frontend/src/Apps/Inscription/ManageRequests.vue b/frontend/src/Apps/Inscription/ManageRequests.vue index 8fd7ddf..1aa9bf0 100644 --- a/frontend/src/Apps/Inscription/ManageRequests.vue +++ b/frontend/src/Apps/Inscription/ManageRequests.vue @@ -1,6 +1,6 @@