Compare commits
	
		
			2 Commits
		
	
	
		
			wal/front/
			...
			Leo/Inscri
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 67fa630ecf | |||
| ad0e7b3e35 | 
| @ -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); | ||||||
|  | |||||||
| @ -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; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -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; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -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; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -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; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -86,12 +86,14 @@ 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> | ||||||
|  |  | ||||||
| <style scoped> | <style scoped> | ||||||
|  | |||||||
							
								
								
									
										82
									
								
								frontend/src/Apps/AboutStudent.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								frontend/src/Apps/AboutStudent.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,82 @@ | |||||||
|  | <script setup> | ||||||
|  |   import i18n from "@/i18n.js" | ||||||
|  |   import {getSelf, getUser} from '../rest/Users.js' | ||||||
|  |   import {ref} from "vue"; | ||||||
|  |  | ||||||
|  |   const user = await getSelf(); | ||||||
|  |  | ||||||
|  |   function getPP(){ | ||||||
|  |     if(user.value.profilePictureUrl === null){ | ||||||
|  |       return "/Clyde.png" | ||||||
|  |     } | ||||||
|  |     return user.profilePictureUrl | ||||||
|  |   } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <template> | ||||||
|  |   <div class="body"> | ||||||
|  |     <div class="container"> | ||||||
|  |       <div class="profilPic"> | ||||||
|  |         <img class="subContainter" :src=getPP()> | ||||||
|  |       </div> | ||||||
|  |       <div class = "globalInfos"> | ||||||
|  |         <div class="infosContainer"> | ||||||
|  |           <div> | ||||||
|  |             {{user.firstName}} {{user.lastName}} | ||||||
|  |           </div> | ||||||
|  |           <div> | ||||||
|  |             E-mail: {{user.email}} | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  |  | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <style> | ||||||
|  | .container{ | ||||||
|  |  | ||||||
|  |   display:grid; | ||||||
|  |   grid-template-columns:200px 900px; | ||||||
|  |   grid-template-rows:200px auto; | ||||||
|  |   column-gap:30px; | ||||||
|  |   row-gap:45px; | ||||||
|  |   grid-template-areas: | ||||||
|  |   "profilPic globalInfos" | ||||||
|  |   "minfos minfos"; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .profilPic{ | ||||||
|  |   grid-area:profilPic; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .globalInfos { | ||||||
|  |   grid-area:globalInfos; | ||||||
|  |   align-self :center; | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .body { | ||||||
|  |   width:100%; | ||||||
|  |   margin-bottom:10px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .subContainter{ | ||||||
|  |   width:100%; | ||||||
|  |   background-color:rgb(50,50,50); | ||||||
|  |   border-radius:20px; | ||||||
|  |   border:4px solid black; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .infosContainer { | ||||||
|  |   padding-bottom:50px; | ||||||
|  |   border:2px solid black; | ||||||
|  |   font-size:25px; | ||||||
|  |   color:white; | ||||||
|  |   padding:20px; | ||||||
|  |   background-color:rgb(50,50,50); | ||||||
|  |   border-radius:20px; | ||||||
|  | } | ||||||
|  | </style> | ||||||
| @ -55,11 +55,11 @@ | |||||||
| </script> | </script> | ||||||
|  |  | ||||||
|  |  | ||||||
| <template style="background-color:rgba(255,255,255,0.05); border-radius:50px" > | <template> | ||||||
|       <div class='loginBox'> |       <div class='loginBox'> | ||||||
|  |  | ||||||
|         <div v-if="loginPage"> |         <div v-if="loginPage"> | ||||||
|           <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> | ||||||
| @ -157,14 +157,31 @@ | |||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <style scoped> | <style scoped> | ||||||
|  | .Home{ | ||||||
|  |   position:absolute; | ||||||
|  |  	display: flex; | ||||||
|  |   z-index: 100; | ||||||
|  | 	padding: 8px 16px; | ||||||
|  | 	color:rgb(255, 255, 255); | ||||||
|  | 	text-decoration: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .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: 100%; |   width: 400px; | ||||||
|   height:100%; |   display:flex; | ||||||
|   justify-content: center; |   justify-content: center; | ||||||
|   padding: 10%; |   padding: 40px; | ||||||
|   border-radius: 5%; |   border-radius: 20px; | ||||||
|   box-shadow:0 5px 25px #000000; |   box-shadow:0 5px 25px #000000; | ||||||
|    |    | ||||||
| } | } | ||||||
| @ -173,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; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -182,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; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ import Profil from "@/Apps/Profil.vue" | |||||||
| import Courses from "@/Apps/ManageCourses.vue" | import Courses from "@/Apps/ManageCourses.vue" | ||||||
| import Users from "@/Apps/UsersList.vue" | import Users from "@/Apps/UsersList.vue" | ||||||
| import Students from "@/Apps/StudentsList.vue" | import Students from "@/Apps/StudentsList.vue" | ||||||
|  | import AboutStudent from "@/Apps/AboutStudent.vue"; | ||||||
|  |  | ||||||
| const apps = { | const apps = { | ||||||
| 		'/login': LoginPage, | 		'/login': LoginPage, | ||||||
| @ -17,6 +18,7 @@ const apps = { | |||||||
| 		'/manage-courses' : Courses, | 		'/manage-courses' : Courses, | ||||||
| 		'/users-list' : Users, | 		'/users-list' : Users, | ||||||
| 		'/students-list' : Students, | 		'/students-list' : Students, | ||||||
|  | 		'/about-students': AboutStudent | ||||||
| } | } | ||||||
|  |  | ||||||
| const appsList = { | const appsList = { | ||||||
| @ -28,6 +30,7 @@ const appsList = { | |||||||
| 		'ManageCourses': { path: '#/manage-courses', icon: 'fa-book', text: i18n("app.manage.courses") }, | 		'ManageCourses': { path: '#/manage-courses', icon: 'fa-book', text: i18n("app.manage.courses") }, | ||||||
| 		'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")}, | 		'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")}, | ||||||
| 		'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")}, | 		'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")}, | ||||||
|  | 		'AboutStudent':{ path: '#/about-users', icon: 'fa-users', text:i18n("app.aboutStudent")} | ||||||
| } | } | ||||||
|  |  | ||||||
| const currentPath = ref(window.location.hash) | const currentPath = ref(window.location.hash) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user