1
0
forked from PGL/Clyde

1 Commits

Author SHA1 Message Date
ad0e7b3e35 - Ajoute un champ year dans UserCurriculum pour différencier les anciers cursus de l'actuel pour l'étudiant
- Ajoute la table ExemptionsRequest
- Ajoute la table ScholarshipRequest
- Ajoute la table UninscriptionRequest
2024-03-23 14:08:03 +01:00
9 changed files with 233 additions and 63 deletions

View File

@ -81,7 +81,7 @@ public class InscriptionService {
); );
userRepo.save(userFromRequest); userRepo.save(userFromRequest);
userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()))); userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),0));
} }
inscrRequest.setState(requestState); inscrRequest.setState(requestState);
save(inscrRequest); save(inscrRequest);

View File

@ -0,0 +1,66 @@
package ovh.herisson.Clyde.Tables;
import jakarta.persistence.*;
@Entity
public class ExemptionsRequest {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name = "Users")
private User user;
@ManyToOne
@JoinColumn(name = "Course")
private Course course;
private String justifDocument;
private RequestState state;
public ExemptionsRequest(User user, Course course, String justifDocument, RequestState state){
this.user = user;
this.course = course;
this.justifDocument = justifDocument;
this.state = state;
}
public ExemptionsRequest(){}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
public String getJustifDocument() {
return justifDocument;
}
public void setJustifDocument(String justifDocument) {
this.justifDocument = justifDocument;
}
public RequestState getState() {
return state;
}
public void setState(RequestState state) {
this.state = state;
}
}

View File

@ -0,0 +1,59 @@
package ovh.herisson.Clyde.Tables;
import jakarta.persistence.*;
@Entity
public class ScholarshipRequest {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name = "Users")
private User user;
private RequestState state;
private String requestForm;
private int amount;
public ScholarshipRequest(User user, RequestState state, String requestForm, int amount){
this.user = user;
this.state = state;
this.requestForm = requestForm;
this.amount = amount;
}
public ScholarshipRequest(){}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public RequestState getState() {
return state;
}
public void setState(RequestState state) {
this.state = state;
}
public String getRequestForm() {
return requestForm;
}
public void setRequestForm(String requestForm) {
this.requestForm = requestForm;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
}

View File

@ -0,0 +1,28 @@
package ovh.herisson.Clyde.Tables;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class UninscriptionRequest {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private RequestState state;
public UninscriptionRequest(RequestState state){
this.state = state;
}
public UninscriptionRequest(){}
public RequestState getState() {
return state;
}
public void setState(RequestState state) {
this.state = state;
}
}

View File

@ -21,9 +21,12 @@ public class UserCurriculum {
@OnDelete(action = OnDeleteAction.CASCADE) @OnDelete(action = OnDeleteAction.CASCADE)
private Curriculum curriculum; private Curriculum curriculum;
public UserCurriculum(User user, Curriculum curriculum){ private int year;
public UserCurriculum(User user, Curriculum curriculum, int year){
this.user = user; this.user = user;
this.curriculum = curriculum; this.curriculum = curriculum;
this.year = year;
} }
public UserCurriculum() {} public UserCurriculum() {}
@ -47,4 +50,12 @@ public class UserCurriculum {
public void setCurriculum(Curriculum curriculum) { public void setCurriculum(Curriculum curriculum) {
this.curriculum = curriculum; this.curriculum = curriculum;
} }
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
} }

View File

@ -52,7 +52,7 @@ window.addEventListener('hashchange', () => {
<a class="icon" href="#Notifications"> <a class="icon" href="#Notifications">
<div class="fa-solid fa-bell" style="margin-top: 7px; margin-bottom: 3px;"></div> <div class="fa-solid fa-bell" style="margin-top: 7px; margin-bottom: 3px;"></div>
</a></li> </a></li>
<li @click="active=!active" class="option"style="float: right;" title=settings> <li @click="active=!active" class="option"style="float: right;" title=settings>
<a class="icon" > <a class="icon" >
<div class="fa-solid fa-gear" style="margin-top: 7px; margin-bottom: 3px;"></div> <div class="fa-solid fa-gear" style="margin-top: 7px; margin-bottom: 3px;"></div>
<div v-if="active" class="dropdown"> <div v-if="active" class="dropdown">
@ -86,9 +86,12 @@ window.addEventListener('hashchange', () => {
</ul> </ul>
</div> </div>
<div class="page"> <div class="page">
<div style=" margin:50px;">
<Suspense> <Suspense>
<component :is="currentView" />
<component :is="currentView" />
</Suspense> </Suspense>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -96,8 +99,6 @@ window.addEventListener('hashchange', () => {
<style scoped> <style scoped>
.container{ .container{
height: 100%;
width: 100%;
display:grid; display:grid;
grid-template-columns:[firstCol-start]70px[firstCol-end secondCol-start]auto[endCol]; grid-template-columns:[firstCol-start]70px[firstCol-end secondCol-start]auto[endCol];
grid-template-rows:[firstRow-start]61px[firstRow-end secondRow-start] auto [endRow]; grid-template-rows:[firstRow-start]61px[firstRow-end secondRow-start] auto [endRow];
@ -110,8 +111,6 @@ window.addEventListener('hashchange', () => {
.page { .page {
grid-area:page; grid-area:page;
height: 100%;
width: 100%;
place-self:center; place-self:center;
} }

View File

@ -0,0 +1,24 @@
<script setup>
</script>
<template>
<div class="aboutbox">
<h1 class="test">Coucou</h1>
</div>
</template>
<style scoped>
.aboutbox {
background-color: rgb(24,24,24);
width: 400px;
display:flex;
justify-content: center;
padding: 40px;
border-radius: 20px;
box-shadow:0 5px 25px #000000;
}
.test{
color: red;
}
</style>

View File

@ -56,10 +56,10 @@
<template> <template>
<div class="setup"> <div class='loginBox'>
<div v-if="loginPage"> <div v-if="loginPage">
<div class='loginBox' style="margin-top:30%;"> <form @submit.prevent=" login(outputs.email,outputs.password);goBackHome();"class="form">
<form @submit.prevent="login(outputs.email,outputs.password);goBackHome();"class="form">
<h1 style="color:rgb(239,60,168); font-family: sans-serif;"> <h1 style="color:rgb(239,60,168); font-family: sans-serif;">
{{i18n("login.guest.signin")}} {{i18n("login.guest.signin")}}
</h1> </h1>
@ -74,15 +74,14 @@
<div class="register"> <div class="register">
<a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a> <a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a>
</div> </div>
<div class="inputBox" style="margin-bottom:35px;"> <div class="inputBox">
<input type="submit" v-model="submitValue"> <input type="submit" v-model="submitValue">
</div> </div>
</form> </form>
</div> </div>
</div>
<div v-else> <div v-else>
<div class='loginBox' style="margin-top:30%; margin-bottom:50%;"> <form class="form">
<form class="form">
<h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;"> <h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;">
{{i18n("login.guest.welcome")}} {{i18n("login.guest.welcome")}}
</h1> </h1>
@ -129,12 +128,9 @@
<p>{{i18n("login.guest.country")}}</p> <p>{{i18n("login.guest.country")}}</p>
<input type="text" v-model="outputs.country"> <input type="text" v-model="outputs.country">
</div> </div>
<form class="inputBox"novalidate enctype="multipart/form-data"> <form novalidate enctype="multipart/form-data" class="inputBox">
<p>{{i18n("profile.picture").toUpperCase()}}</p> <p>{{i18n("profile.picture").toUpperCase()}}</p>
<label class="browser"> <input type="file" :disabled="imageSaved" @change="ppData = uploadProfilePicture($event.target.files); imageSaved = true;" accept="image/*">
Parcourir . . .
<input type="file" :disabled="imageSaved" @change="ppData = uploadProfilePicture($event.target.files); imageSaved = true;" accept="image/*">
</label>
</form> </form>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("Curriculum").toUpperCase()}}</p> <p>{{i18n("Curriculum").toUpperCase()}}</p>
@ -157,26 +153,35 @@
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div>
</template> </template>
<style scoped> <style scoped>
.Home{
.setup { position:absolute;
margin-left: auto; display: flex;
margin-right:auto; z-index: 100;
min-width:400px; padding: 8px 16px;
color:rgb(255, 255, 255);
width:25%; text-decoration: none;
height:60%;
} }
.Home:hover{
width:40px;
background-color: black;
border-radius:6px;
color:white;
transform: translate(0px ,1px);
}
.loginBox { .loginBox {
background-color: rgb(24,24,24); background-color: rgb(24,24,24);
width: 400px;
display:flex; display:flex;
justify-content: center; justify-content: center;
border-radius: 5%; padding: 40px;
border-radius: 20px;
box-shadow:0 5px 25px #000000; box-shadow:0 5px 25px #000000;
} }
@ -185,8 +190,9 @@
width:100%; width:100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center;
align-items:center; align-items:center;
gap: 3%; gap: 15px;
} }
@ -194,12 +200,12 @@
width:100%; width:100%;
border: none; border: none;
margin-right: 12.5%; margin-right: 50px;
padding-left: 2.5%; padding-left: 10px;
padding-top:2.5%; padding-top:10px;
padding-bottom:2.5%; padding-bottom:10px;
outline:none; outline:none;
border-radius: 10px; border-radius: 4px;
font-size:1.35em; font-size:1.35em;
} }
@ -214,9 +220,8 @@
.register{ .register{
color:rgb(239,60,168); color:rgb(239,60,168);
width:70%; width: 100%;
margin-bottom:20px; display:flex;
margin-top:20px;
cursor: pointer; cursor: pointer;
} }
@ -245,21 +250,6 @@ input[type=submit],button,select{
} }
input[type=file]{
display:none;
}
.browser{
display:inline-block;
cursor:pointer;
border-radius:20px;
background-color:rgb(239,60,168);
padding:5%;
font-size:1.35em;
font-family:sans-serif;
background:#FFFFFF;
}
button:active ,.switchpage:active{ button:active ,.switchpage:active{
opacity:0.8; opacity:0.8;

View File

@ -1,11 +1,4 @@
body { body {
background-color: rgb(53, 25, 60); background-color: rgb(53, 25, 60);
margin:0; margin:0;
width: 100vw;
height: 100vh;
}
#app {
width: 100%;
height: 100%;
} }