Compare commits
No commits in common. "302e0b555c27a57a97e3562126280252a476d85b" and "1f66ac5a4d20a0a821e156f0fa1e2eec50fbdcf4" have entirely different histories.
302e0b555c
...
1f66ac5a4d
@ -14,26 +14,26 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# deploy-frontend:
|
deploy-frontend:
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# steps:
|
steps:
|
||||||
# - uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# - name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
# uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
# working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
# - run: npm ci
|
- run: npm ci
|
||||||
# name: clean install
|
name: clean install
|
||||||
# working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
# - name: building
|
- name: building
|
||||||
# working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
# run: npm run build
|
run: npm run build
|
||||||
# - name: pushing to the server
|
- name: pushing to the server
|
||||||
# working-directory: ./frontend
|
working-directory: ./frontend
|
||||||
# run: |
|
run: |
|
||||||
# echo "${{ secrets.SSH_KEY }}" > key
|
echo "${{ secrets.SSH_KEY }}" > key
|
||||||
# chmod 0600 key
|
chmod 0600 key
|
||||||
# scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r dist/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:
|
scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r dist/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:
|
||||||
# - run: echo "The website has been deployed. visit https://clyde.herisson.ovh/"
|
- run: echo "The website has been deployed. visit https://clyde.herisson.ovh/"
|
||||||
|
|
||||||
deploy-backend:
|
deploy-backend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -46,5 +46,5 @@ jobs:
|
|||||||
scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r * ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:api/
|
scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r * ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:api/
|
||||||
- name: restarting the backend
|
- name: restarting the backend
|
||||||
run: |
|
run: |
|
||||||
ssh -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'cd api/ && sed -i compose.yaml -e "s/8080:8080/4001:8080/" -e "s/8000:8080/4000:8080/" -e "23 i\ environment:\n - VITE_CLYDE_MODE=prod" && docker-compose up --force-recreate --build -d'
|
ssh -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'cd api/ && sed -i compose.yaml -e "s/8080:8080/4001:8080/" -e "s/8000:8080/4000:8080/" && docker-compose up --force-recreate --build -d'
|
||||||
- run: echo "The backend has been deployed. running at https://clyde.herisson.ovh/api"
|
- run: echo "The backend has been deployed. running at https://clyde.herisson.ovh/api"
|
||||||
|
@ -13,7 +13,10 @@ import ovh.herisson.Clyde.Services.AuthenticatorService;
|
|||||||
import ovh.herisson.Clyde.Services.TokenService;
|
import ovh.herisson.Clyde.Services.TokenService;
|
||||||
import ovh.herisson.Clyde.Services.UserService;
|
import ovh.herisson.Clyde.Services.UserService;
|
||||||
import ovh.herisson.Clyde.Tables.*;
|
import ovh.herisson.Clyde.Tables.*;
|
||||||
import ovh.herisson.Clyde.Tables.Inscription.*;
|
import ovh.herisson.Clyde.Tables.Inscription.ExemptionsRequest;
|
||||||
|
import ovh.herisson.Clyde.Tables.Inscription.Minerval;
|
||||||
|
import ovh.herisson.Clyde.Tables.Inscription.ScholarshipRequest;
|
||||||
|
import ovh.herisson.Clyde.Tables.Inscription.UnregisterRequest;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@ -325,7 +328,7 @@ public class RequestsController {
|
|||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
toEdit.setTeacherApprovalState(newteacherstate);
|
toEdit.setState(newteacherstate);
|
||||||
changeCurriculumRequestRepository.save(toEdit);
|
changeCurriculumRequestRepository.save(toEdit);
|
||||||
|
|
||||||
if (newteacherstate == RequestState.Accepted && toEdit.getState() == RequestState.Accepted){
|
if (newteacherstate == RequestState.Accepted && toEdit.getState() == RequestState.Accepted){
|
||||||
|
@ -185,11 +185,11 @@ public class MockController {
|
|||||||
|
|
||||||
//Schedule part
|
//Schedule part
|
||||||
|
|
||||||
Lesson lesson_0_progra1 = new Lesson(progra1, "Mon Apr 22 2024 08:15", "Mon Apr 22 2024 10:15","rgb(255,36,175)","A0B2","Course");
|
Lesson lesson_0_progra1 = new Lesson(progra1, "Mon Apr 22 2024 08:15", "Mon Apr 22 2024 10:15","rgb(0,50,100)","A0B2","Course");
|
||||||
Lesson lesson_0_chemistry1 = new Lesson(chemistry1, "Wed Mar 27 2024 08:15", "Wed Mar 27 2024 09:15","rgb(36,175,255)","A0B2","TP");
|
Lesson lesson_0_chemistry1 = new Lesson(chemistry1, "Wed Mar 27 2024 08:15", "Wed Mar 27 2024 09:15","rgb(100,50,0)","A0B2","TP");
|
||||||
Lesson lesson_0_psycho1 = new Lesson(psycho1, "Sun Mar 24 2024 10:30 ","Sun Mar 24 2024 12:30 ","rgb(255,36,175)", "A0B2","TD");
|
Lesson lesson_0_psycho1 = new Lesson(psycho1, "Sun Mar 24 2024 10:30 ","Sun Mar 24 2024 12:30 ","rgb(100,50,100)", "A0B2","TD");
|
||||||
Lesson lesson_1_progra1 = new Lesson(progra1, "Mon Apr 02 2024 13:30", "Mon Apr 02 2024 15:30","rgb(36,175,255)","A0B2","TP");
|
Lesson lesson_1_progra1 = new Lesson(progra1, "Mon Apr 02 2024 13:30", "Mon Apr 02 2024 15:30","rgb(0,50,100)","A0B2","TP");
|
||||||
Lesson lesson_0_commun = new Lesson(commun, "Mon Apr 01 2024 10:30", "Mon Apr 01 2024 12:30","rgb(255,36,175)","A0B2","Course");
|
Lesson lesson_0_commun = new Lesson(commun, "Mon Apr 01 2024 10:30", "Mon Apr 01 2024 12:30","rgb(0,50,100)","A0B2","Course");
|
||||||
|
|
||||||
LessonChangesRequest request1 = new LessonChangesRequest(joke,RequestState.Pending,null,null,null,null,2,null,1);
|
LessonChangesRequest request1 = new LessonChangesRequest(joke,RequestState.Pending,null,null,null,null,2,null,1);
|
||||||
LessonChangesRequest request2 = new LessonChangesRequest(joke,RequestState.Pending,"Fri Apr 19 2024 10:30 ","Fri Apr 19 2024 12:30 ",null,null,1,null,2);
|
LessonChangesRequest request2 = new LessonChangesRequest(joke,RequestState.Pending,"Fri Apr 19 2024 10:30 ","Fri Apr 19 2024 12:30 ",null,null,1,null,2);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package ovh.herisson.Clyde.Repositories.Inscription;
|
package ovh.herisson.Clyde.Repositories.Inscription;
|
||||||
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
import ovh.herisson.Clyde.Tables.Inscription.ChangeCurriculumRequest;
|
import ovh.herisson.Clyde.Tables.ChangeCurriculumRequest;
|
||||||
|
|
||||||
public interface ChangeCurriculumRequestRepository extends CrudRepository<ChangeCurriculumRequest, Long> {
|
public interface ChangeCurriculumRequestRepository extends CrudRepository<ChangeCurriculumRequest, Long> {
|
||||||
ChangeCurriculumRequest findById(long id);
|
ChangeCurriculumRequest findById(long id);
|
||||||
|
@ -51,8 +51,8 @@ public class TokenService {
|
|||||||
ArrayList<Token> tokenList = tokenRepo.getByUserOrderByExpirationDate(token.getUser());
|
ArrayList<Token> tokenList = tokenRepo.getByUserOrderByExpirationDate(token.getUser());
|
||||||
|
|
||||||
while(tokenList.size() >= 5){
|
while(tokenList.size() >= 5){
|
||||||
tokenRepo.delete(tokenList.get(0));
|
tokenRepo.delete(tokenList.getFirst());
|
||||||
tokenList.remove(tokenList.get(0));
|
tokenList.remove(tokenList.getFirst());
|
||||||
}
|
}
|
||||||
tokenRepo.save(token);
|
tokenRepo.save(token);
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package ovh.herisson.Clyde.Tables.Inscription;
|
package ovh.herisson.Clyde.Tables;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import ovh.herisson.Clyde.Tables.Curriculum;
|
|
||||||
import ovh.herisson.Clyde.Tables.RequestState;
|
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -23,7 +23,6 @@ import ovh.herisson.Clyde.Repositories.TokenRepository;
|
|||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
|
import ovh.herisson.Clyde.Repositories.UserRepository;
|
||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
|
||||||
import ovh.herisson.Clyde.Services.TokenService;
|
import ovh.herisson.Clyde.Services.TokenService;
|
||||||
import ovh.herisson.Clyde.Services.UserService;
|
|
||||||
import ovh.herisson.Clyde.Tables.Role;
|
import ovh.herisson.Clyde.Tables.Role;
|
||||||
import ovh.herisson.Clyde.Tables.Token;
|
import ovh.herisson.Clyde.Tables.Token;
|
||||||
import ovh.herisson.Clyde.Tables.User;
|
import ovh.herisson.Clyde.Tables.User;
|
||||||
@ -47,8 +46,7 @@ public class UserControllerTest {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TokenService tokenService;
|
private TokenService tokenService;
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -74,7 +72,6 @@ public class UserControllerTest {
|
|||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup(){
|
void setup(){
|
||||||
RestAssured.baseURI = "http://localhost:" + port;
|
RestAssured.baseURI = "http://localhost:" + port;
|
||||||
userRepository.deleteAll();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
@ -87,7 +84,7 @@ public class UserControllerTest {
|
|||||||
public void userPostTest(){
|
public void userPostTest(){
|
||||||
User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
|
User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
|
||||||
Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
|
Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
|
||||||
userService.save(god);
|
userRepository.save(god);
|
||||||
tokenService.saveToken(godToken);
|
tokenService.saveToken(godToken);
|
||||||
|
|
||||||
//Can god post herobrine himself ?
|
//Can god post herobrine himself ?
|
||||||
|
@ -70,7 +70,7 @@ class TokenServiceTest {
|
|||||||
ArrayList<Token> tokenList = new ArrayList<>();
|
ArrayList<Token> tokenList = new ArrayList<>();
|
||||||
GregorianCalendar gc = new GregorianCalendar();
|
GregorianCalendar gc = new GregorianCalendar();
|
||||||
|
|
||||||
User malveillant = new User("Cargo", "John", "CargoJ@mail.com", "secret", "secret", new Date(), null, "secret", null);
|
User malveillant = new User("Cargo", "John", "CargoJ@mail.com", "secret", "secret", null, null, null, "secret");
|
||||||
userRepository.save(malveillant);
|
userRepository.save(malveillant);
|
||||||
|
|
||||||
for (int i = 0; i < 20; i++){
|
for (int i = 0; i < 20; i++){
|
||||||
|
@ -51,12 +51,12 @@ async function editChangeCurrReqTeacherApproval(state){
|
|||||||
<div>
|
<div>
|
||||||
<button @click="localwindowstate++"> {{ i18n("seeprofile") }} </button>
|
<button @click="localwindowstate++"> {{ i18n("seeprofile") }} </button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="user.role === 'InscriptionService' || user.role==='Admin'">
|
<div>
|
||||||
<button v-if="req.state === 'Pending'" @click="req.state='Accepted';uploadandrefreshChangeRequest('Accepted')">{{ i18n("request.accept") }}</button>
|
<button v-if="req.state === 'Pending'" @click="req.state='Accepted';uploadandrefreshChangeRequest('Accepted')">{{ i18n("request.accept") }}</button>
|
||||||
<button v-if="req.state === 'Pending'" @click="req.state='Refused';uploadandrefreshChangeRequest('Refused')" style="margin-left: 2%;">{{i18n("request.refuse")}}</button>
|
<button v-if="req.state === 'Pending'" @click="req.state='Refused';uploadandrefreshChangeRequest('Refused')" style="margin-left: 2%;">{{i18n("request.refuse")}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="user.role === 'Teacher' || user.role === 'Admin'">
|
<div v-if="user.role === 'Teacher' || user.role === 'Admin'">
|
||||||
<button v-if="req.teacherApprovalState === 'Pending'" @click="req.teacherApprovalState='Accepted';editChangeCurrReqTeacherApproval('Accepted')" style="margin-right: 2%">{{i18n("acceptequiv")}}</button>
|
<button v-if="req.teacherApprovalState === 'Pending'" @click="req.teacherApprovalState='Accepted';editChangeCurrReqTeacherApproval('Accepted')">{{i18n("acceptequiv")}}</button>
|
||||||
<button v-if="req.teacherApprovalState === 'Pending'" @click="req.teacherApprovalState='Refused';editChangeCurrReqTeacherApproval('Refused')">{{i18n("refuseequiv")}}</button>
|
<button v-if="req.teacherApprovalState === 'Pending'" @click="req.teacherApprovalState='Refused';editChangeCurrReqTeacherApproval('Refused')">{{i18n("refuseequiv")}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -352,19 +352,19 @@
|
|||||||
<select v-model="changecurrdata.actualcursus" style="margin-right: 3%">
|
<select v-model="changecurrdata.actualcursus" style="margin-right: 3%">
|
||||||
<option v-for="item in getActualCurriculumList()" style="font-size:20px;" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
<option v-for="item in getActualCurriculumList()" style="font-size:20px;" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
||||||
</select>
|
</select>
|
||||||
{{ i18n("newcursus") }} :
|
{{ i18n("newcurr") }} :
|
||||||
<select v-model="changecurrdata.newcursus">
|
<select v-model="changecurrdata.newcursus">
|
||||||
<option v-for="item in curricula" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
<option v-for="item in curricula" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="height:40px;" v-if="reRegState === 2">
|
<div style="height:40px;" v-if="reRegState === 2">
|
||||||
{{ i18n("newcursus") }} :
|
{{ i18n("newcurr") }} :
|
||||||
<select v-model="changecurrdata.newcursus">
|
<select v-model="changecurrdata.newcursus">
|
||||||
<option v-for="item in curricula" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
<option v-for="item in curricula" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="height:40px;" v-if="reRegState === 1">
|
<div style="height:40px;" v-if="reRegState === 1">
|
||||||
{{ i18n("newcursus") }} :
|
{{ i18n("newcurr") }} :
|
||||||
<select v-model="changecurrdata.newcursus" @change="getActualCurr(changecurrdata.newcursus);">
|
<select v-model="changecurrdata.newcursus" @change="getActualCurr(changecurrdata.newcursus);">
|
||||||
<option v-for="item in getCurriculumsNextYear()" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
<option v-for="item in getCurriculumsNextYear()" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
|
||||||
</select>
|
</select>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import {getDifferenceTime,lastDateOfMonth,formatDate,getFirstDay,sortByDate,weekFromList,sundayToTheEnd,getMarginTop,getHoursMinutes, monthFromList} from '../scheduleFunctions.js'
|
import {getDifferenceTime,lastDateOfMonth,formatDate,getFirstDay,sortByDate,weekFromList,sundayToTheEnd,getMarginTop,getHoursMinutes, monthFromList, durationCourse} from '../scheduleFunctions.js'
|
||||||
import {getAllSchedule} from "@/rest/scheduleRest.js";
|
import {getAllSchedule} from "@/rest/scheduleRest.js";
|
||||||
import {getOnesLessons, getOwnedLessons } from "@/rest/lessonSchedule.js"
|
import {getOnesLessons, getOwnedLessons } from "@/rest/lessonSchedule.js"
|
||||||
import {isLogged, getSelf,getTeachers} from "@/rest/Users.js"
|
import {isLogged, getSelf,getTeachers} from "@/rest/Users.js"
|
||||||
@ -76,6 +76,8 @@
|
|||||||
}
|
}
|
||||||
const days = ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];
|
const days = ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];
|
||||||
const months = ["january","february","march","april",'may',"june","july","august","september","october","november","december"]
|
const months = ["january","february","march","april",'may',"june","july","august","september","october","november","december"]
|
||||||
|
const firstDayOfMonth = ref(getFirstDay(new Date()))
|
||||||
|
const monthDone = ref(false);
|
||||||
function getMonday(d) {
|
function getMonday(d) {
|
||||||
d = new Date(d);
|
d = new Date(d);
|
||||||
d.setHours(0,0,0);
|
d.setHours(0,0,0);
|
||||||
@ -532,7 +534,7 @@
|
|||||||
<option v-for="item in allSchedules" :value='item'>{{item.curriculum.option}}-{{item.curriculum.year}}</option>
|
<option v-for="item in allSchedules" :value='item'>{{item.curriculum.option}}-{{item.curriculum.year}}</option>
|
||||||
</select>
|
</select>
|
||||||
<button v-if="display=='Week'" @click="display='Month'">{{i18n("Week")}}</button>
|
<button v-if="display=='Week'" @click="display='Month'">{{i18n("Week")}}</button>
|
||||||
<button v-if="display=='Month'" @click="display='Week'; value=1;">{{i18n("Month")}}</button>
|
<button v-if="display=='Month'" @click="display='Week'; value=1;">{{i18("Month")}}</button>
|
||||||
<button v-if="format == 'Grid'" @click="format ='List'">{{i18n("Grid")}}</button>
|
<button v-if="format == 'Grid'" @click="format ='List'">{{i18n("Grid")}}</button>
|
||||||
<button v-if="format == 'List'" @click ="format = 'Grid'">{{i18n("List")}}</button>
|
<button v-if="format == 'List'" @click ="format = 'Grid'">{{i18n("List")}}</button>
|
||||||
<button v-if="verifUser()" @click="jsonMod=false ;displayOwnSchedule();">{{i18n("OwnSchedule")}}</button>
|
<button v-if="verifUser()" @click="jsonMod=false ;displayOwnSchedule();">{{i18n("OwnSchedule")}}</button>
|
||||||
@ -575,7 +577,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="body" style="background-color:rgb(50,50,50);">{{i18n("schedule.courses")}}</div>
|
<div class="body" style="background-color:rgb(50,50,50);">{{i18n("schedule.courses")}}</div>
|
||||||
<div class="body" style="background-color:#484848;"v-for="lesson in focusLessons">
|
<div class="body" style="background-color:#484848;"v-for="lesson in focusLessons">
|
||||||
{{formatDate(lesson.lessonStart)}}
|
|
||||||
{{ getHoursMinutes(lesson.lessonStart)}}-{{getHoursMinutes(lesson.lessonEnd)}}
|
{{ getHoursMinutes(lesson.lessonStart)}}-{{getHoursMinutes(lesson.lessonEnd)}}
|
||||||
{{ lesson.local}}
|
{{ lesson.local}}
|
||||||
{{i18n(lesson.lessonType.toString())}}
|
{{i18n(lesson.lessonType.toString())}}
|
||||||
|
Loading…
Reference in New Issue
Block a user