Compare commits
	
		
			3 Commits
		
	
	
		
			172837d6d1
			...
			4485dbf803
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4485dbf803 | |||
| b52c50fd76 | |||
| 9a5115f7fe | 
@ -39,7 +39,7 @@ public class ExternalCurriculumController {
 | 
				
			|||||||
            user = userRepository.findById((Integer) externalCurrInfos.get("userRegNo"));
 | 
					            user = userRepository.findById((Integer) externalCurrInfos.get("userRegNo"));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ExternalCurriculum toSave = new ExternalCurriculum(ir, (String) externalCurrInfos.get("school"),(String) externalCurrInfos.get("formation"),(String) externalCurrInfos.get("completion"), (Integer)externalCurrInfos.get("startYear"), (Integer)externalCurrInfos.get("endYear"), (String)externalCurrInfos.get("justifDocUrl"), user);
 | 
					        ExternalCurriculum toSave = new ExternalCurriculum(ir, (String) externalCurrInfos.get("school"),(String) externalCurrInfos.get("formation"),(String) externalCurrInfos.get("completion"), (Integer)externalCurrInfos.get("startYear"), (Integer)externalCurrInfos.get("endYear"), (String)externalCurrInfos.get("justifdocUrl"), user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return new ResponseEntity<>(ecr.save(toSave), HttpStatus.OK);
 | 
					        return new ResponseEntity<>(ecr.save(toSave), HttpStatus.OK);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -3,10 +3,12 @@ package ovh.herisson.Clyde.EndPoints.Inscription;
 | 
				
			|||||||
import org.springframework.http.HttpStatus;
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
import org.springframework.http.ResponseEntity;
 | 
					import org.springframework.http.ResponseEntity;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					import ovh.herisson.Clyde.Repositories.CurriculumRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
					import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
				
			||||||
import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
					import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
				
			||||||
import ovh.herisson.Clyde.Services.Inscription.InscriptionService;
 | 
					import ovh.herisson.Clyde.Services.Inscription.InscriptionService;
 | 
				
			||||||
import ovh.herisson.Clyde.Services.ProtectionService;
 | 
					import ovh.herisson.Clyde.Services.ProtectionService;
 | 
				
			||||||
 | 
					import ovh.herisson.Clyde.Tables.Curriculum;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
					import ovh.herisson.Clyde.Tables.Inscription.InscriptionRequest;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.RequestState;
 | 
					import ovh.herisson.Clyde.Tables.RequestState;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Role;
 | 
					import ovh.herisson.Clyde.Tables.Role;
 | 
				
			||||||
@ -19,10 +21,11 @@ public class InscriptionController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private final InscriptionService inscriptionServ;
 | 
					    private final InscriptionService inscriptionServ;
 | 
				
			||||||
    private final AuthenticatorService authServ;
 | 
					    private final AuthenticatorService authServ;
 | 
				
			||||||
 | 
					    private final CurriculumRepository curriculumRepository;
 | 
				
			||||||
    public InscriptionController(InscriptionService inscriptionServ, AuthenticatorService authServ){
 | 
					    public InscriptionController(InscriptionService inscriptionServ, AuthenticatorService authServ, CurriculumRepository curriculumRepository){
 | 
				
			||||||
        this.inscriptionServ = inscriptionServ;
 | 
					        this.inscriptionServ = inscriptionServ;
 | 
				
			||||||
        this.authServ = authServ;
 | 
					        this.authServ = authServ;
 | 
				
			||||||
 | 
					        this.curriculumRepository = curriculumRepository;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -103,4 +106,31 @@ public class InscriptionController {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
					        return new ResponseEntity<>(HttpStatus.OK);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PatchMapping("/request/registerequivimpose/{id}/{cursusid}")
 | 
				
			||||||
 | 
					    public ResponseEntity<Object> editRegisterEquiv(@RequestHeader("Authorization") String token, @PathVariable long id, @PathVariable long cursusid){
 | 
				
			||||||
 | 
					        if (authServ.isNotIn(new Role[]{Role.Admin,Role.Teacher}, token))
 | 
				
			||||||
 | 
					            return new UnauthorizedResponse<>(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        InscriptionRequest toEdit = inscriptionServ.getById(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //If the request is already accepted we just return ok (otherwise we would duplicate the procedure below)
 | 
				
			||||||
 | 
					        if (toEdit.getEquivalenceState() == RequestState.Accepted){
 | 
				
			||||||
 | 
					            return new ResponseEntity<>(HttpStatus.OK);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //We impose a curriculum
 | 
				
			||||||
 | 
					        Curriculum curriculum = curriculumRepository.findById(cursusid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        toEdit.setCurriculumId(curriculum.getCurriculumId());
 | 
				
			||||||
 | 
					        toEdit.setEquivalenceState(RequestState.Accepted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        inscriptionServ.save(toEdit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (toEdit.getState() == RequestState.Accepted && (toEdit.getEquivalenceState() == RequestState.Accepted || toEdit.getEquivalenceState() == RequestState.Unrequired))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            inscriptionServ.createUser(toEdit);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return new ResponseEntity<>(HttpStatus.OK);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -5,10 +5,7 @@ import org.springframework.http.ResponseEntity;
 | 
				
			|||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.CourseRepository;
 | 
					import ovh.herisson.Clyde.Repositories.CourseRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.CurriculumRepository;
 | 
					import ovh.herisson.Clyde.Repositories.CurriculumRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.Inscription.ChangeCurriculumRequestRepository;
 | 
					import ovh.herisson.Clyde.Repositories.Inscription.*;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.Inscription.ExemptionsRequestRepository;
 | 
					 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.Inscription.ScholarshipRequestRepository;
 | 
					 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.Inscription.UnregisterRequestRepository;
 | 
					 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
 | 
					import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
					import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
					import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
				
			||||||
@ -17,6 +14,7 @@ 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.ExemptionsRequest;
 | 
					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.ScholarshipRequest;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Inscription.UnregisterRequest;
 | 
					import ovh.herisson.Clyde.Tables.Inscription.UnregisterRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,10 +37,10 @@ public class RequestsController {
 | 
				
			|||||||
    public final UserService userService;
 | 
					    public final UserService userService;
 | 
				
			||||||
    public final UserCurriculumRepository userCurriculumRepository;
 | 
					    public final UserCurriculumRepository userCurriculumRepository;
 | 
				
			||||||
    public final CurriculumRepository curriculumRepository;
 | 
					    public final CurriculumRepository curriculumRepository;
 | 
				
			||||||
 | 
					    public final MinervalRepository minervalRepository;
 | 
				
			||||||
    public final ChangeCurriculumRequestRepository changeCurriculumRequestRepository;
 | 
					    public final ChangeCurriculumRequestRepository changeCurriculumRequestRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public RequestsController(TokenService tokenService, ExemptionsRequestRepository err, ScholarshipRequestRepository srr, UserRepository userRepository, AuthenticatorService authServ, UnregisterRequestRepository unregisterRequestRepository, CourseRepository courseRepository, UserService userService, UserCurriculumRepository userCurriculumRepository, CurriculumRepository curriculumRepository, ChangeCurriculumRequestRepository changeCurriculumRequestRepository) {
 | 
					    public RequestsController(TokenService tokenService, ExemptionsRequestRepository err, ScholarshipRequestRepository srr, UserRepository userRepository, AuthenticatorService authServ, UnregisterRequestRepository unregisterRequestRepository, CourseRepository courseRepository, UserService userService, UserCurriculumRepository userCurriculumRepository, CurriculumRepository curriculumRepository, MinervalRepository minervalRepository, ChangeCurriculumRequestRepository changeCurriculumRequestRepository) {
 | 
				
			||||||
        this.tokenService = tokenService;
 | 
					        this.tokenService = tokenService;
 | 
				
			||||||
        this.err = err;
 | 
					        this.err = err;
 | 
				
			||||||
        this.srr = srr;
 | 
					        this.srr = srr;
 | 
				
			||||||
@ -53,6 +51,7 @@ public class RequestsController {
 | 
				
			|||||||
        this.userService = userService;
 | 
					        this.userService = userService;
 | 
				
			||||||
        this.userCurriculumRepository = userCurriculumRepository;
 | 
					        this.userCurriculumRepository = userCurriculumRepository;
 | 
				
			||||||
        this.curriculumRepository = curriculumRepository;
 | 
					        this.curriculumRepository = curriculumRepository;
 | 
				
			||||||
 | 
					        this.minervalRepository = minervalRepository;
 | 
				
			||||||
        this.changeCurriculumRequestRepository = changeCurriculumRequestRepository;
 | 
					        this.changeCurriculumRequestRepository = changeCurriculumRequestRepository;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -154,6 +153,8 @@ public class RequestsController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ScholarshipRequest scholarshipRequest = srr.findById((Integer) infos.get("id"));
 | 
					        ScholarshipRequest scholarshipRequest = srr.findById((Integer) infos.get("id"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        User u = scholarshipRequest.getUser();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //If the request is already accepted we just return ok (otherwise we would duplicate the procedure below)
 | 
					        //If the request is already accepted we just return ok (otherwise we would duplicate the procedure below)
 | 
				
			||||||
        if (scholarshipRequest.getState() == RequestState.Accepted){
 | 
					        if (scholarshipRequest.getState() == RequestState.Accepted){
 | 
				
			||||||
            return new ResponseEntity<>(HttpStatus.OK);
 | 
					            return new ResponseEntity<>(HttpStatus.OK);
 | 
				
			||||||
@ -162,6 +163,12 @@ public class RequestsController {
 | 
				
			|||||||
        if (infos.get("state").equals("Accepted")){
 | 
					        if (infos.get("state").equals("Accepted")){
 | 
				
			||||||
            scholarshipRequest.setState(RequestState.Accepted);
 | 
					            scholarshipRequest.setState(RequestState.Accepted);
 | 
				
			||||||
            scholarshipRequest.setAmount((int) infos.get("amount"));
 | 
					            scholarshipRequest.setAmount((int) infos.get("amount"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //We then deduce then amount from the minerval
 | 
				
			||||||
 | 
					            ArrayList<Minerval> minerval = minervalRepository.getMinervalsByStudentRegNoOrderByYearDesc(u.getRegNo());
 | 
				
			||||||
 | 
					            minerval.get(0).setPaidAmount(minerval.get(0).getPaidAmount() + scholarshipRequest.getAmount());
 | 
				
			||||||
 | 
					            minerval.get(0).setToPay(minerval.get(0).getToPay() - scholarshipRequest.getAmount());
 | 
				
			||||||
 | 
					            minervalRepository.save(minerval.get(0));
 | 
				
			||||||
        }else{
 | 
					        }else{
 | 
				
			||||||
            scholarshipRequest.setState(RequestState.Refused);
 | 
					            scholarshipRequest.setState(RequestState.Refused);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -89,7 +89,8 @@ public class InscriptionService {
 | 
				
			|||||||
                inscrRequest.getCountry(),
 | 
					                inscrRequest.getCountry(),
 | 
				
			||||||
                inscrRequest.getBirthDate(),
 | 
					                inscrRequest.getBirthDate(),
 | 
				
			||||||
                inscrRequest.getProfilePicture(),
 | 
					                inscrRequest.getProfilePicture(),
 | 
				
			||||||
                inscrRequest.getPassword()
 | 
					                inscrRequest.getPassword(),
 | 
				
			||||||
 | 
					                inscrRequest.getIdentityCard()
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        userService.save(userFromRequest);
 | 
					        userService.save(userFromRequest);
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ public class ProtectionService {
 | 
				
			|||||||
        toReturn.put("country",user.getCountry());
 | 
					        toReturn.put("country",user.getCountry());
 | 
				
			||||||
        toReturn.put("profilePictureUrl",user.getProfilePictureUrl());
 | 
					        toReturn.put("profilePictureUrl",user.getProfilePictureUrl());
 | 
				
			||||||
        toReturn.put("role",user.getRole());
 | 
					        toReturn.put("role",user.getRole());
 | 
				
			||||||
 | 
					        toReturn.put("identityCard", user.getIdentityCardUrl());
 | 
				
			||||||
        return toReturn;
 | 
					        return toReturn;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -28,6 +28,7 @@ public class User {
 | 
				
			|||||||
    private Date birthDate;
 | 
					    private Date birthDate;
 | 
				
			||||||
    private String profilePictureUrl;
 | 
					    private String profilePictureUrl;
 | 
				
			||||||
    private Role role;
 | 
					    private Role role;
 | 
				
			||||||
 | 
					    private String identityCardUrl;
 | 
				
			||||||
	@JsonIgnore
 | 
						@JsonIgnore
 | 
				
			||||||
    private String password;
 | 
					    private String password;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -53,8 +54,10 @@ public class User {
 | 
				
			|||||||
        this.password = password;
 | 
					        this.password = password;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //This constructor is used to add a student
 | 
				
			||||||
    public User(String lastName, String firstName, String email, String address,
 | 
					    public User(String lastName, String firstName, String email, String address,
 | 
				
			||||||
                String country, Date birthDate, String profilePictureUrl, String password)
 | 
					                String country, Date birthDate, String profilePictureUrl, String password,String identityCardUrl)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        this.lastName = lastName;
 | 
					        this.lastName = lastName;
 | 
				
			||||||
        this.firstName = firstName;
 | 
					        this.firstName = firstName;
 | 
				
			||||||
@ -65,6 +68,7 @@ public class User {
 | 
				
			|||||||
        this.profilePictureUrl = profilePictureUrl;
 | 
					        this.profilePictureUrl = profilePictureUrl;
 | 
				
			||||||
        this.password = password;
 | 
					        this.password = password;
 | 
				
			||||||
        this.role = Role.Student;
 | 
					        this.role = Role.Student;
 | 
				
			||||||
 | 
					        this.identityCardUrl = identityCardUrl;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    public User() {}
 | 
					    public User() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -138,4 +142,12 @@ public class User {
 | 
				
			|||||||
    public void setPassword(String password) {
 | 
					    public void setPassword(String password) {
 | 
				
			||||||
        this.password = password;
 | 
					        this.password = password;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setIdentityCardUrl(String identityCardUrl) {
 | 
				
			||||||
 | 
					        this.identityCardUrl = identityCardUrl;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getIdentityCardUrl() {
 | 
				
			||||||
 | 
					        return identityCardUrl;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ app.studentList=Students List
 | 
				
			|||||||
app.users=Users
 | 
					app.users=Users
 | 
				
			||||||
app.manageOwnLessons=Manage Owned Courses Schedule
 | 
					app.manageOwnLessons=Manage Owned Courses Schedule
 | 
				
			||||||
app.lessonRequests=Schedule Requests
 | 
					app.lessonRequests=Schedule Requests
 | 
				
			||||||
app.payments = Payments
 | 
					app.payments=Payments
 | 
				
			||||||
request.moreInfos=More Infos
 | 
					request.moreInfos=More Infos
 | 
				
			||||||
request.accept=Accept
 | 
					request.accept=Accept
 | 
				
			||||||
request.refuse=Refuse
 | 
					request.refuse=Refuse
 | 
				
			||||||
@ -142,7 +142,7 @@ dltaxdoc=Download tax justification document
 | 
				
			|||||||
dlresidency=Download residency justification document
 | 
					dlresidency=Download residency justification document
 | 
				
			||||||
enteramount=Please enter the amount to provide :
 | 
					enteramount=Please enter the amount to provide :
 | 
				
			||||||
oldcursus=Old curriculums
 | 
					oldcursus=Old curriculums
 | 
				
			||||||
newcursus = New curriculums
 | 
					newcursus=New curriculums
 | 
				
			||||||
year=Year
 | 
					year=Year
 | 
				
			||||||
reason=Reason :
 | 
					reason=Reason :
 | 
				
			||||||
selectedcursus=Selected curriculum :
 | 
					selectedcursus=Selected curriculum :
 | 
				
			||||||
@ -204,3 +204,6 @@ chcur=Change from a cursus to another
 | 
				
			|||||||
iwouldlike=I would like to :
 | 
					iwouldlike=I would like to :
 | 
				
			||||||
newcurr=New curriculum
 | 
					newcurr=New curriculum
 | 
				
			||||||
cursusprereq=The cursus you selected has some prerequisites ensure that your external curriculum data is updated in your profile
 | 
					cursusprereq=The cursus you selected has some prerequisites ensure that your external curriculum data is updated in your profile
 | 
				
			||||||
 | 
					imposecurriculum=Impose a curriculum
 | 
				
			||||||
 | 
					impose=Impose
 | 
				
			||||||
 | 
					gotimposed=The selected curriculum has been imposed
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ app.studentList=Liste des étudiants
 | 
				
			|||||||
app.users=Utilisateurs
 | 
					app.users=Utilisateurs
 | 
				
			||||||
app.manageOwnLessons=Gérer ses horaires de cours
 | 
					app.manageOwnLessons=Gérer ses horaires de cours
 | 
				
			||||||
app.lessonRequests=Requêtes d'horaire
 | 
					app.lessonRequests=Requêtes d'horaire
 | 
				
			||||||
app.payments = Payements
 | 
					app.payments=Payements
 | 
				
			||||||
request.moreInfos=Plus d'Infos
 | 
					request.moreInfos=Plus d'Infos
 | 
				
			||||||
request.accept=Accepter
 | 
					request.accept=Accepter
 | 
				
			||||||
request.refuse=Refuser
 | 
					request.refuse=Refuser
 | 
				
			||||||
@ -204,3 +204,6 @@ chcur=Changer d'un cursus vers un autre
 | 
				
			|||||||
iwouldlike=Je voudrais :
 | 
					iwouldlike=Je voudrais :
 | 
				
			||||||
newcurr=Nouveau cursus
 | 
					newcurr=Nouveau cursus
 | 
				
			||||||
cursusprereq=Le cursus que vous avez selectionné a des prérequis assurez vous que votre dossier de parcours est a jour dans votre profil
 | 
					cursusprereq=Le cursus que vous avez selectionné a des prérequis assurez vous que votre dossier de parcours est a jour dans votre profil
 | 
				
			||||||
 | 
					imposecurriculum=Imposer un cursusgotimposed
 | 
				
			||||||
 | 
					impose=Imposer
 | 
				
			||||||
 | 
					gotimposed=Le cursus selectionné a été imposé
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,12 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  addUninscReq, editChangeCurrReq, editChangeCurrReqTeacherState,
 | 
					  editChangeCurrReq, editChangeCurrReqTeacherState,
 | 
				
			||||||
  editScholarshipReq,
 | 
					  getChangeCurrReqById,
 | 
				
			||||||
  editUnregReq, getChangeCurrReqById,
 | 
					 | 
				
			||||||
  getScholarshipReqById,
 | 
					 | 
				
			||||||
  getUnregisterbyId
 | 
					 | 
				
			||||||
} from "@/rest/requests.js";
 | 
					} from "@/rest/requests.js";
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {getSelf, getUser} from "@/rest/Users.js";
 | 
					import {getSelf} from "@/rest/Users.js";
 | 
				
			||||||
import {reactive, ref} from "vue";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import AboutStudent from "@/Apps/Inscription/AboutStudent.vue";
 | 
					import AboutStudent from "@/Apps/Inscription/AboutStudent.vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps(["reqId"])
 | 
					const props = defineProps(["reqId"])
 | 
				
			||||||
@ -88,11 +85,6 @@ async function editChangeCurrReqTeacherApproval(state){
 | 
				
			|||||||
  "minfos minfos";
 | 
					  "minfos minfos";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.profilPic{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  grid-area:profilPic;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.globalInfos {
 | 
					.globalInfos {
 | 
				
			||||||
  grid-area:globalInfos;
 | 
					  grid-area:globalInfos;
 | 
				
			||||||
  align-self :center;
 | 
					  align-self :center;
 | 
				
			||||||
@ -108,13 +100,6 @@ async function editChangeCurrReqTeacherApproval(state){
 | 
				
			|||||||
  margin-top:7%;
 | 
					  margin-top:7%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.subContainter{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
  border-radius:20px;
 | 
					 | 
				
			||||||
  border:4px solid black;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.infosContainer {
 | 
					.infosContainer {
 | 
				
			||||||
  min-width:350px;
 | 
					  min-width:350px;
 | 
				
			||||||
  padding-bottom:50px;
 | 
					  padding-bottom:50px;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,11 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  addUninscReq,
 | 
					 | 
				
			||||||
  editExempReqState,
 | 
					  editExempReqState,
 | 
				
			||||||
  editScholarshipReq,
 | 
					 | 
				
			||||||
  getExempReq,
 | 
					  getExempReq,
 | 
				
			||||||
  getScholarshipReqById
 | 
					 | 
				
			||||||
} from "@/rest/requests.js";
 | 
					} from "@/rest/requests.js";
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {getUser} from "@/rest/Users.js";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import {reactive, ref} from "vue";
 | 
					 | 
				
			||||||
import AboutStudent from "@/Apps/Inscription/AboutStudent.vue";
 | 
					import AboutStudent from "@/Apps/Inscription/AboutStudent.vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps(["reqId"])
 | 
					const props = defineProps(["reqId"])
 | 
				
			||||||
@ -44,7 +40,7 @@ async function editExemp(newstate){
 | 
				
			|||||||
            <button @click="profile = !profile">{{ i18n("seeprofile") }}</button>
 | 
					            <button @click="profile = !profile">{{ i18n("seeprofile") }}</button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button>{{ i18n("dljustifdoc") }}</button>
 | 
					            <button><a :href="req.justifDocument">{{ i18n("dljustifdoc") }}</a></button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button v-if="req.state === 'Pending'" @click="req.state='Accepted';editExemp('Accepted')">{{ i18n("request.accept") }}</button>
 | 
					            <button v-if="req.state === 'Pending'" @click="req.state='Accepted';editExemp('Accepted')">{{ i18n("request.accept") }}</button>
 | 
				
			||||||
@ -76,11 +72,6 @@ async function editExemp(newstate){
 | 
				
			|||||||
  "minfos minfos";
 | 
					  "minfos minfos";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.profilPic{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  grid-area:profilPic;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.globalInfos {
 | 
					.globalInfos {
 | 
				
			||||||
  grid-area:globalInfos;
 | 
					  grid-area:globalInfos;
 | 
				
			||||||
  align-self :center;
 | 
					  align-self :center;
 | 
				
			||||||
@ -96,13 +87,6 @@ async function editExemp(newstate){
 | 
				
			|||||||
  margin-top:7%;
 | 
					  margin-top:7%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.subContainter{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
  border-radius:20px;
 | 
					 | 
				
			||||||
  border:4px solid black;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.infosContainer {
 | 
					.infosContainer {
 | 
				
			||||||
  min-width:350px;
 | 
					  min-width:350px;
 | 
				
			||||||
  padding-bottom:50px;
 | 
					  padding-bottom:50px;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,20 +1,23 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
import i18n from "@/i18n.js"
 | 
					import i18n from "@/i18n.js"
 | 
				
			||||||
import {getSelf, getUser} from '../../rest/Users.js'
 | 
					import {getSelf} from '../../rest/Users.js'
 | 
				
			||||||
import {getcurriculum} from "@/rest/curriculum.js";
 | 
					import {getAllCurriculums, getcurriculum} from "@/rest/curriculum.js";
 | 
				
			||||||
import {getRegisters} from "@/rest/ServiceInscription.js";
 | 
					import {getRegisters} from "@/rest/ServiceInscription.js";
 | 
				
			||||||
import {get} from "jsdom/lib/jsdom/named-properties-tracker.js";
 | 
					 | 
				
			||||||
import {getExternalCurriculumByInscrReq} from "@/rest/externalCurriculum.js";
 | 
					import {getExternalCurriculumByInscrReq} from "@/rest/externalCurriculum.js";
 | 
				
			||||||
import {ref} from "vue";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import ExternalCurriculumList from "@/Apps/Inscription/ExternalCurriculumList.vue";
 | 
					import ExternalCurriculumList from "@/Apps/Inscription/ExternalCurriculumList.vue";
 | 
				
			||||||
import {editEquivalenceState} from "@/rest/requests.js";
 | 
					import {editEquivalenceState, imposeCurriculum} from "@/rest/requests.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const curriculums = await getAllCurriculums()
 | 
				
			||||||
const props = defineProps(['target']);
 | 
					const props = defineProps(['target']);
 | 
				
			||||||
const request = await getRegisters(props.target);
 | 
					const request = await getRegisters(props.target);
 | 
				
			||||||
const cursus = await getcurriculum(request.curriculum);
 | 
					const cursus = await getcurriculum(request.curriculum);
 | 
				
			||||||
const user = await getSelf();
 | 
					const user = await getSelf();
 | 
				
			||||||
const list = ref(false);
 | 
					const list = ref(false);
 | 
				
			||||||
const externalCurriculum = await getExternalCurriculumByInscrReq(request.id)
 | 
					const externalCurriculum = await getExternalCurriculumByInscrReq(request.id)
 | 
				
			||||||
 | 
					const impose = ref(false)
 | 
				
			||||||
 | 
					const imposeCurr = ref(0)
 | 
				
			||||||
 | 
					const imposed = ref(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Get the parent page windowState to display the correct button
 | 
					//Get the parent page windowState to display the correct button
 | 
				
			||||||
const windowState = defineModel("windowState")
 | 
					const windowState = defineModel("windowState")
 | 
				
			||||||
@ -28,6 +31,10 @@ function getPP(){
 | 
				
			|||||||
async function editEquivalence(id, newstate){
 | 
					async function editEquivalence(id, newstate){
 | 
				
			||||||
  await editEquivalenceState(id, newstate)
 | 
					  await editEquivalenceState(id, newstate)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function refreshCursus(){
 | 
				
			||||||
 | 
					  cursus.value = await getcurriculum(request.curriculum)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
@ -57,10 +64,10 @@ async function editEquivalence(id, newstate){
 | 
				
			|||||||
            {{ i18n("WantedCursus") }} : BAB {{cursus.year}} {{cursus.option}}
 | 
					            {{ i18n("WantedCursus") }} : BAB {{cursus.year}} {{cursus.option}}
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div style="margin-top: 3%">
 | 
					          <div style="margin-top: 3%">
 | 
				
			||||||
            <a :href="request.identityCard">{{ i18n("dlidentitycard") }}</a>
 | 
					            <button><a :href="request.identityCard">{{ i18n("dlidentitycard") }}</a></button>
 | 
				
			||||||
            <button v-if="request.admissionDocUrl != null">{{ i18n("dladmissiondoc") }}</button>
 | 
					            <button v-if="request.admissionDocUrl != null"><a :href="request.admissionDocUrl">{{ i18n("dladmissiondoc") }}</a></button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div v-if="cursus.year > 1">
 | 
					          <div v-if="externalCurriculum.length !== 0">
 | 
				
			||||||
            <button style="background-color:rgb(105,05,105);margin-top: 3%" @click="list=!list" v-if="(user.role == 'Teacher' || user.role == 'Admin')">{{ i18n("seeextcur") }}</button>
 | 
					            <button style="background-color:rgb(105,05,105);margin-top: 3%" @click="list=!list" v-if="(user.role == 'Teacher' || user.role == 'Admin')">{{ i18n("seeextcur") }}</button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -73,9 +80,20 @@ async function editEquivalence(id, newstate){
 | 
				
			|||||||
  <div v-if="list==true">
 | 
					  <div v-if="list==true">
 | 
				
			||||||
    <ExternalCurriculumList :ext-curr-list="externalCurriculum" :mode="0"></ExternalCurriculumList>
 | 
					    <ExternalCurriculumList :ext-curr-list="externalCurriculum" :mode="0"></ExternalCurriculumList>
 | 
				
			||||||
    <div style="margin-left: 15%;margin-top: 5%;">
 | 
					    <div style="margin-left: 15%;margin-top: 5%;">
 | 
				
			||||||
      <button style="margin-left: 2%" v-if="request.equivalenceState === 'Pending'" @click="list = false;editEquivalence(request.id, 'Accepted'); request.equivalenceState='Accepted'">{{i18n("acceptequiv")}}</button>
 | 
					      <button style="margin-left: 2%" v-if="request.equivalenceState === 'Pending' && !impose" @click="list = false;editEquivalence(request.id, 'Accepted'); request.equivalenceState='Accepted'">{{i18n("acceptequiv")}}</button>
 | 
				
			||||||
      <button style="margin-left: 2%" v-if="request.equivalenceState === 'Pending'" @click="list = false;editEquivalence(request.id, 'Refused'); request.equivalenceState='Refused'">{{i18n("refuseequiv")}}</button>
 | 
					      <button style="margin-left: 2%;margin-right: 3%" v-if="request.equivalenceState === 'Pending' && !impose" @click="list = false;editEquivalence(request.id, 'Refused'); request.equivalenceState='Refused'">{{i18n("refuseequiv")}}</button>
 | 
				
			||||||
      <button style="margin-left: 2%" @click="list=false">Back</button>
 | 
					      <div v-if="!imposed && request.equivalenceState !== 'Accepted'" style="margin-top: 3%;margin-left: 1%">
 | 
				
			||||||
 | 
					        {{i18n("imposecurriculum")}}
 | 
				
			||||||
 | 
					        <input type="checkbox" v-model="impose" v-if="!imposed">
 | 
				
			||||||
 | 
					        <select v-if="impose" v-model="imposeCurr">
 | 
				
			||||||
 | 
					          <option v-for="item in curriculums" :value="item.curriculumId">Bac {{item.year}} {{item.option}}</option>
 | 
				
			||||||
 | 
					        </select>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <button v-if="impose && !imposed" style="margin-left: 2%" @click="imposeCurriculum(request.id, imposeCurr);request.equivalenceState='Accepted';imposed=true;">{{ i18n("impose") }}</button>
 | 
				
			||||||
 | 
					      <div v-if="imposed">
 | 
				
			||||||
 | 
					        {{ i18n("gotimposed") }}
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <button style="margin-left: 2%" @click="list=false;refreshCursus()">{{ i18n("courses.back") }}</button>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,7 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {addUninscReq, editScholarshipReq, getScholarshipReqById} from "@/rest/requests.js";
 | 
					import {editScholarshipReq, getScholarshipReqById} from "@/rest/requests.js";
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {getUser} from "@/rest/Users.js";
 | 
					 | 
				
			||||||
import {reactive, ref} from "vue";
 | 
					import {reactive, ref} from "vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps(["reqId"])
 | 
					const props = defineProps(["reqId"])
 | 
				
			||||||
@ -54,8 +53,8 @@ async function uploadandrefreshScholarshipRequest(){
 | 
				
			|||||||
            {{ i18n("login.guest.birthday") }} : {{user.birthDate.slice(0,10)}}
 | 
					            {{ i18n("login.guest.birthday") }} : {{user.birthDate.slice(0,10)}}
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button @click="">{{ i18n("dltaxdoc") }}</button>
 | 
					            <button><a :href="req.taxDocUrl">{{ i18n("dltaxdoc") }}</a></button>
 | 
				
			||||||
            <button style="margin-left: 2%">{{ i18n("dlresidency") }}</button>
 | 
					            <button style="margin-left: 2%"><a :href="req.residencyDocUrl">{{ i18n("dlresidency") }}</a></button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div v-if="req.state == 'Pending'" style="margin-top: 2%; margin-bottom: 2%;">
 | 
					          <div v-if="req.state == 'Pending'" style="margin-top: 2%; margin-bottom: 2%;">
 | 
				
			||||||
            {{i18n("enteramount")}}
 | 
					            {{i18n("enteramount")}}
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,6 @@
 | 
				
			|||||||
  import {ref} from "vue";
 | 
					  import {ref} from "vue";
 | 
				
			||||||
  import ExternalCurriculumList from "@/Apps/Inscription/ExternalCurriculumList.vue";
 | 
					  import ExternalCurriculumList from "@/Apps/Inscription/ExternalCurriculumList.vue";
 | 
				
			||||||
  import {getExternalCurriculumByUser} from "@/rest/externalCurriculum.js";
 | 
					  import {getExternalCurriculumByUser} from "@/rest/externalCurriculum.js";
 | 
				
			||||||
  import {getUserActualCourses} from "@/rest/courses.js";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const props = defineProps(['target'])
 | 
					  const props = defineProps(['target'])
 | 
				
			||||||
  const user = await getUser(props.target)
 | 
					  const user = await getUser(props.target)
 | 
				
			||||||
@ -13,9 +12,6 @@
 | 
				
			|||||||
  const externalcurrlist = await getExternalCurriculumByUser(user.regNo)
 | 
					  const externalcurrlist = await getExternalCurriculumByUser(user.regNo)
 | 
				
			||||||
  const extercurrlist = ref(false)
 | 
					  const extercurrlist = ref(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const courselist = await getUserActualCourses(user.regNo)
 | 
					 | 
				
			||||||
  console.log(courselist)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  const watchingUser = await getSelf()
 | 
					  const watchingUser = await getSelf()
 | 
				
			||||||
  function getPP(){
 | 
					  function getPP(){
 | 
				
			||||||
    if(user.profilePictureUrl === null){
 | 
					    if(user.profilePictureUrl === null){
 | 
				
			||||||
@ -23,17 +19,6 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return user.profilePictureUrl
 | 
					    return user.profilePictureUrl
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  //Cette function renvoie l'année académique concernée si on est dans l'année 2023-2024 elle renvoie 2023
 | 
					 | 
				
			||||||
  //car dans la db l'année scolaire 2023-2024 est representée juste par 2023 (le même système s'applique pour chaque années on prend la borne inférieure
 | 
					 | 
				
			||||||
  function getYear(){
 | 
					 | 
				
			||||||
    let date = new Date();
 | 
					 | 
				
			||||||
    if (date.getMonth() <= 6){
 | 
					 | 
				
			||||||
      return date.getFullYear()-1
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return date.getFullYear()
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
@ -60,7 +45,7 @@
 | 
				
			|||||||
            {{ i18n("login.guest.birthday") }} : {{user.birthDate}}
 | 
					            {{ i18n("login.guest.birthday") }} : {{user.birthDate}}
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button v-if="watchingUser.role === 'Admin' || watchingUser.role === 'InscriptionService' || watchingUser.role === 'Secretary' || watchingUser.regNo === user.regNo">{{i18n("dlidentitycard")}}</button>
 | 
					            <button v-if="watchingUser.role === 'Admin' || watchingUser.role === 'InscriptionService' || watchingUser.role === 'Secretary' || watchingUser.regNo === user.regNo"><a :href="user.identityCard">{{i18n("dlidentitycard")}}</a></button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button @click="extercurrlist=!extercurrlist">{{i18n("seeextcur")}}</button>
 | 
					            <button @click="extercurrlist=!extercurrlist">{{i18n("seeextcur")}}</button>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,26 +1,15 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  addUninscReq,
 | 
					 | 
				
			||||||
  editScholarshipReq,
 | 
					 | 
				
			||||||
  editUnregReq,
 | 
					  editUnregReq,
 | 
				
			||||||
  getScholarshipReqById,
 | 
					 | 
				
			||||||
  getUnregisterbyId
 | 
					  getUnregisterbyId
 | 
				
			||||||
} from "@/rest/requests.js";
 | 
					} from "@/rest/requests.js";
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {getUser} from "@/rest/Users.js";
 | 
					import {ref} from "vue";
 | 
				
			||||||
import {reactive, ref} from "vue";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps(["reqId"])
 | 
					const props = defineProps(["reqId"])
 | 
				
			||||||
const req = ref(await getUnregisterbyId(props.reqId))
 | 
					const req = ref(await getUnregisterbyId(props.reqId))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getPP(){
 | 
					 | 
				
			||||||
  if(user.profilePictureUrl === null){
 | 
					 | 
				
			||||||
    return "/Clyde.png"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return user.profilePictureUrl
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async function uploadandrefreshUnregRequest(state){
 | 
					async function uploadandrefreshUnregRequest(state){
 | 
				
			||||||
  await editUnregReq(req.value.id, state)
 | 
					  await editUnregReq(req.value.id, state)
 | 
				
			||||||
  req.value.state = state
 | 
					  req.value.state = state
 | 
				
			||||||
@ -69,15 +58,9 @@ async function uploadandrefreshUnregRequest(state){
 | 
				
			|||||||
  "minfos minfos";
 | 
					  "minfos minfos";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.profilPic{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  grid-area:profilPic;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.globalInfos {
 | 
					.globalInfos {
 | 
				
			||||||
  grid-area:globalInfos;
 | 
					  grid-area:globalInfos;
 | 
				
			||||||
  align-self :center;
 | 
					  align-self :center;
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.body {
 | 
					.body {
 | 
				
			||||||
@ -89,13 +72,6 @@ async function uploadandrefreshUnregRequest(state){
 | 
				
			|||||||
  margin-top:7%;
 | 
					  margin-top:7%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.subContainter{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
  border-radius:20px;
 | 
					 | 
				
			||||||
  border:4px solid black;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.infosContainer {
 | 
					.infosContainer {
 | 
				
			||||||
  min-width:350px;
 | 
					  min-width:350px;
 | 
				
			||||||
  padding-bottom:50px;
 | 
					  padding-bottom:50px;
 | 
				
			||||||
 | 
				
			|||||||
@ -2,9 +2,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import {reactive, ref} from "vue";
 | 
					import {reactive, ref} from "vue";
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {getCourse} from "@/rest/courses.js";
 | 
					 | 
				
			||||||
import {getcurriculum} from "@/rest/curriculum.js";
 | 
					import {getcurriculum} from "@/rest/curriculum.js";
 | 
				
			||||||
import {uploadFile, uploadProfilePicture} from "@/rest/uploads.js";
 | 
					import {uploadFile} from "@/rest/uploads.js";
 | 
				
			||||||
import {createExemptionsRequest, getExempByUser} from "@/rest/requests.js";
 | 
					import {createExemptionsRequest, getExempByUser} from "@/rest/requests.js";
 | 
				
			||||||
import {getSelf} from "@/rest/Users.js";
 | 
					import {getSelf} from "@/rest/Users.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14,7 +13,7 @@ const user = await getSelf()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const windowState = defineModel("windowState")
 | 
					const windowState = defineModel("windowState")
 | 
				
			||||||
const exempList = await getExempByUser(user.regNo)
 | 
					const exempList = await getExempByUser(user.regNo)
 | 
				
			||||||
 | 
					const submitted = ref(false)
 | 
				
			||||||
const courseslist = ref(await getcurriculum(selectedCurriculum.value.curriculumId))
 | 
					const courseslist = ref(await getcurriculum(selectedCurriculum.value.curriculumId))
 | 
				
			||||||
const list = ref(true)
 | 
					const list = ref(true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -57,7 +56,7 @@ function isExempted(course){
 | 
				
			|||||||
          <div class="firstname">{{item.owner.firstName}}</div>
 | 
					          <div class="firstname">{{item.owner.firstName}}</div>
 | 
				
			||||||
          <div class="lastname">{{item.owner.lastName}}</div>
 | 
					          <div class="lastname">{{item.owner.lastName}}</div>
 | 
				
			||||||
          <div class="credits">credits : {{item.credits}}</div>
 | 
					          <div class="credits">credits : {{item.credits}}</div>
 | 
				
			||||||
          <div class="askexemption" v-if="!isExempted(item)"><button style="background-color:rgb(105,0,0);" @click="list= !list;exemptReq.courseId=item.courseId">{{i18n("askexemp")}}</button></div>
 | 
					          <div class="askexemption" v-if="!isExempted(item)"><button style="background-color:rgb(105,0,0);" @click="list= !list;exemptReq.courseId=item.courseID;">{{i18n("askexemp")}}</button></div>
 | 
				
			||||||
          <div v-else class="askexemption" style="font-size: 50%">{{ i18n("exemp") }}</div>
 | 
					          <div v-else class="askexemption" style="font-size: 50%">{{ i18n("exemp") }}</div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -66,19 +65,22 @@ function isExempted(course){
 | 
				
			|||||||
      <button @click="windowState = 0">{{ i18n("courses.back")}}</button>
 | 
					      <button @click="windowState = 0">{{ i18n("courses.back")}}</button>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div v-if="list === false" class="infosContainer">
 | 
					  <div v-if="list === false"  class="infosContainer">
 | 
				
			||||||
      <p>{{ i18n("uploadjustifdoc") }} </p>
 | 
					      <p v-if="!submitted">{{ i18n("uploadjustifdoc") }} </p>
 | 
				
			||||||
    <div>
 | 
					    <div>
 | 
				
			||||||
    <label class="browser">
 | 
					    <label class="browser" v-if="!submitted">
 | 
				
			||||||
      <input  type="file" @change="ppData.value = $event.target.files" accept="image/*" ref="filepath">
 | 
					      <input  type="file" @change="ppData.value = $event.target.files" ref="filepath">
 | 
				
			||||||
    </label>
 | 
					    </label>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <button style="margin-top: 3%" @click="postExemptionRequest(ppData.value, 'JustificationDocument');">
 | 
					    <button style="margin-top: 3%" v-if="!submitted" @click="postExemptionRequest(ppData.value, 'JustificationDocument');submitted=!submitted">
 | 
				
			||||||
      {{ i18n("subexemreq") }}
 | 
					      {{ i18n("subexemreq") }}
 | 
				
			||||||
    </button>
 | 
					    </button>
 | 
				
			||||||
 | 
					    <div v-if="submitted">
 | 
				
			||||||
 | 
					      {{i18n("reqsent")}}
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div v-if="list === false">
 | 
					  <div v-if="list === false">
 | 
				
			||||||
    <button @click="list=!list">{{ i18n("courses.back") }}</button>
 | 
					    <button @click="list=!list;submitted=!submitted">{{ i18n("courses.back") }}</button>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -31,7 +31,7 @@
 | 
				
			|||||||
    completion : "completed",
 | 
					    completion : "completed",
 | 
				
			||||||
    startYear : 0,
 | 
					    startYear : 0,
 | 
				
			||||||
    endYear: 0,
 | 
					    endYear: 0,
 | 
				
			||||||
    justifdocUrl : null,
 | 
					    justifdocUrl : "",
 | 
				
			||||||
    userRegNo : null
 | 
					    userRegNo : null
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -43,7 +43,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if(props.mode !== 2){
 | 
					  if(props.mode !== 2){
 | 
				
			||||||
    extCurrList.value = props.extCurrList
 | 
					    extCurrList.value = props.extCurrList
 | 
				
			||||||
    console.log("oe")
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function deleteExtCursus(extcursus){
 | 
					  function deleteExtCursus(extcursus){
 | 
				
			||||||
@ -86,7 +85,7 @@
 | 
				
			|||||||
          <div class="school"><a>{{item.school}}</a></div>
 | 
					          <div class="school"><a>{{item.school}}</a></div>
 | 
				
			||||||
          <div class="formation"><a>{{item.formation}}</a></div>
 | 
					          <div class="formation"><a>{{item.formation}}</a></div>
 | 
				
			||||||
          <div class="completion"><a>{{item.completion}}</a></div>
 | 
					          <div class="completion"><a>{{item.completion}}</a></div>
 | 
				
			||||||
          <div class="download"><button>{{ i18n("dldoc") }}</button></div>
 | 
					          <div class="download" v-if="props.mode!==2"><button><a :href="item.justifdocUrl">{{ i18n("dldoc") }}</a></button></div>
 | 
				
			||||||
          <div class="edit" v-if="props.mode === 2"><button @click="list=!list;externalCurr.justifdocUrl=item.justifDocUrl; externalCurr.endYear = item.endYear; externalCurr.startYear = item.startYear; externalCurr.school = item.school;externalCurr.completion = item.completion;externalCurr.formation=item.formation;editmode=!editmode;extNum=index">{{i18n("edit")}}</button></div>
 | 
					          <div class="edit" v-if="props.mode === 2"><button @click="list=!list;externalCurr.justifdocUrl=item.justifDocUrl; externalCurr.endYear = item.endYear; externalCurr.startYear = item.startYear; externalCurr.school = item.school;externalCurr.completion = item.completion;externalCurr.formation=item.formation;editmode=!editmode;extNum=index">{{i18n("edit")}}</button></div>
 | 
				
			||||||
          <div class="delete" v-if="props.mode === 2"><button @click="deleteExtCursus(item)">{{ i18n("delete") }}</button></div>
 | 
					          <div class="delete" v-if="props.mode === 2"><button @click="deleteExtCursus(item)">{{ i18n("delete") }}</button></div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
  import i18n from "@/i18n.js"
 | 
					  import i18n from "@/i18n.js"
 | 
				
			||||||
  import {ref, vModelSelect, watch} from 'vue'
 | 
					  import {ref, watch} from 'vue'
 | 
				
			||||||
  import {validateRegister, getAllRegisters } from '@/rest/ServiceInscription.js'
 | 
					  import {validateRegister, getAllRegisters } from '@/rest/ServiceInscription.js'
 | 
				
			||||||
  import AboutRequest from "@/Apps/Inscription/AboutRequest.vue";
 | 
					  import AboutRequest from "@/Apps/Inscription/AboutRequest.vue";
 | 
				
			||||||
  import {
 | 
					  import {
 | 
				
			||||||
@ -18,7 +18,7 @@
 | 
				
			|||||||
  const requests = ref(await getAllRegisters());
 | 
					  const requests = ref(await getAllRegisters());
 | 
				
			||||||
  let targetId = "";
 | 
					  let targetId = "";
 | 
				
			||||||
  const user = await getSelf()
 | 
					  const user = await getSelf()
 | 
				
			||||||
  const requestType = ref("inscription");
 | 
					  const requestType = ref(i18n("inscription"));
 | 
				
			||||||
  const filterType = ref("None");
 | 
					  const filterType = ref("None");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //0 = liste, 1 = détails, 2 = sure?, 3 = manage scholarship, 4 manage unregister, 5 = manage curriculum change, 6 = manage exemptions
 | 
					  //0 = liste, 1 = détails, 2 = sure?, 3 = manage scholarship, 4 manage unregister, 5 = manage curriculum change, 6 = manage exemptions
 | 
				
			||||||
@ -91,8 +91,8 @@
 | 
				
			|||||||
          <div class="equivalencestate" style="font-size: 80%">{{ i18n("teacherapproval") }} {{item.equivalenceState}}</div>
 | 
					          <div class="equivalencestate" style="font-size: 80%">{{ i18n("teacherapproval") }} {{item.equivalenceState}}</div>
 | 
				
			||||||
          <div class="surname">{{item.lastName}}</div>
 | 
					          <div class="surname">{{item.lastName}}</div>
 | 
				
			||||||
          <div class="firstname">{{item.firstName}}</div>
 | 
					          <div class="firstname">{{item.firstName}}</div>
 | 
				
			||||||
          <div class="accept" v-if="item.state === 'Pending'"><button @click="windowsState=2;targetId=item.id;" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div>
 | 
					          <div class="accept" v-if="item.state === 'Pending' && (user.role === 'Admin' || user.role === 'InscriptionService')"><button @click="windowsState=2;targetId=item.id;" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div>
 | 
				
			||||||
          <div class="refuse" v-if="item.state === 'Pending'"><button @click="upPage(item.id,'Refused')" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div>
 | 
					          <div class="refuse" v-if="item.state === 'Pending' && (user.role === 'Admin' || user.role === 'InscriptionService')"><button @click="upPage(item.id,'Refused')" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div>
 | 
				
			||||||
          <div class="infos"><button style="background-color:rgb(105,05,105);" @click="targetId=item.id;windowsState=1;">{{i18n("request.moreInfos")}}</button></div>
 | 
					          <div class="infos"><button style="background-color:rgb(105,05,105);" @click="targetId=item.id;windowsState=1;">{{i18n("request.moreInfos")}}</button></div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="container" style="grid-template-columns:25% 15% 15% 25% 14.2%;grid-template-areas:'date reqState studentfirstname studentlastname  infos';" v-if="requestType === i18n('scholarship')">
 | 
					        <div class="container" style="grid-template-columns:25% 15% 15% 25% 14.2%;grid-template-areas:'date reqState studentfirstname studentlastname  infos';" v-if="requestType === i18n('scholarship')">
 | 
				
			||||||
@ -131,10 +131,12 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div style='display:flex; justify-content:center; min-width:1140px;margin-top: 10%' v-if="windowsState === 2">
 | 
					  <div class="infosContainer" style='margin-left:15%;display:flex; justify-content:center; width: 70%;margin-top: 10%' v-if="windowsState === 2">
 | 
				
			||||||
    <p>{{ i18n("surreq") }}</p>
 | 
					    <p>{{ i18n("surreq") }}</p>
 | 
				
			||||||
    <button style="background-color:rgb(105,05,105);" @click="upPage(targetId,'Accepted');windowsState=0;">{{ i18n("validate") }}</button>
 | 
					    <div style="margin-left: 10%; margin-top: 1.5%; width: 30%">
 | 
				
			||||||
    <button style="background-color:rgb(105,05,105);" @click="windowsState=0;">{{ i18n("courses.back")}}</button>
 | 
					      <button style="background-color:rgb(105,05,105);margin-right: 2%" @click="upPage(targetId,'Accepted');windowsState=0;">{{ i18n("validate") }}</button>
 | 
				
			||||||
 | 
					      <button style="background-color:rgb(105,05,105);" @click="windowsState=0;">{{ i18n("courses.back")}}</button>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div v-if="windowsState === 3">
 | 
					  <div v-if="windowsState === 3">
 | 
				
			||||||
    <AboutScholarship :req-id="targetId"></AboutScholarship>
 | 
					    <AboutScholarship :req-id="targetId"></AboutScholarship>
 | 
				
			||||||
@ -253,7 +255,15 @@
 | 
				
			|||||||
    background-color:rgb(50,50,50);
 | 
					    background-color:rgb(50,50,50);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .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>
 | 
					</style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,5 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
import i18n from "@/i18n.js";
 | 
					import i18n from "@/i18n.js";
 | 
				
			||||||
import {ref} from "vue";
 | 
					 | 
				
			||||||
import {getAllPayments} from "@/rest/requests.js";
 | 
					import {getAllPayments} from "@/rest/requests.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const paymentsList = await getAllPayments()
 | 
					const paymentsList = await getAllPayments()
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
  import {reactive, ref } from 'vue'
 | 
					  import {reactive, ref } from 'vue'
 | 
				
			||||||
  import i18n from '@/i18n.js'
 | 
					  import i18n from '@/i18n.js'
 | 
				
			||||||
  import {login, register, disconnect, isLogged} from '@/rest/Users.js'
 | 
					  import {login, register, disconnect, isLogged} from '@/rest/Users.js'
 | 
				
			||||||
  import {getAllCurriculums, getcurriculum} from '@/rest/curriculum.js'
 | 
					  import {getAllCurriculums} from '@/rest/curriculum.js'
 | 
				
			||||||
  import {uploadFile, uploadProfilePicture} from '@/rest/uploads.js'
 | 
					  import {uploadFile, uploadProfilePicture} from '@/rest/uploads.js'
 | 
				
			||||||
  import {toast} from 'vue3-toastify'
 | 
					  import {toast} from 'vue3-toastify'
 | 
				
			||||||
  import 'vue3-toastify/dist/index.css';
 | 
					  import 'vue3-toastify/dist/index.css';
 | 
				
			||||||
@ -31,8 +31,9 @@
 | 
				
			|||||||
  const passwordConfirm=ref("")
 | 
					  const passwordConfirm=ref("")
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
  const imageSaved = ref(false)
 | 
					  const imageSaved = ref(false)
 | 
				
			||||||
  let ppData = ""
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const ppData = ref({})
 | 
				
			||||||
  const idcardfile = ref({})
 | 
					  const idcardfile = ref({})
 | 
				
			||||||
  const justifcardfile = ref({})
 | 
					  const justifcardfile = ref({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -58,11 +59,6 @@
 | 
				
			|||||||
  disconnect();
 | 
					  disconnect();
 | 
				
			||||||
  window.location.reload();}
 | 
					  window.location.reload();}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function uploadPP(arg){
 | 
					 | 
				
			||||||
    const data = await uploadProfilePicture(arg);
 | 
					 | 
				
			||||||
    ppData = data.url;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  //This functions makes the distinction between a master cursus (year 4 or more) and a bachelor cursus (year 3 or less)
 | 
					  //This functions makes the distinction between a master cursus (year 4 or more) and a bachelor cursus (year 3 or less)
 | 
				
			||||||
  function getCursusDisplay(cursus){
 | 
					  function getCursusDisplay(cursus){
 | 
				
			||||||
    if (cursus.year <= 3){
 | 
					    if (cursus.year <= 3){
 | 
				
			||||||
@ -77,6 +73,7 @@
 | 
				
			|||||||
    //We upload the two files and we get their paths on the server
 | 
					    //We upload the two files and we get their paths on the server
 | 
				
			||||||
    const identityCardFile = await uploadFile(idcardfile.value, "IdentityCard")
 | 
					    const identityCardFile = await uploadFile(idcardfile.value, "IdentityCard")
 | 
				
			||||||
    const justifFile = ref(null)
 | 
					    const justifFile = ref(null)
 | 
				
			||||||
 | 
					    const profilepic = await uploadProfilePicture(ppData.value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (curricula[outputs.curriculum-1].requireCertificate){
 | 
					    if (curricula[outputs.curriculum-1].requireCertificate){
 | 
				
			||||||
      justifFile.value = await uploadFile(justifcardfile.value, "JustificationDocument")
 | 
					      justifFile.value = await uploadFile(justifcardfile.value, "JustificationDocument")
 | 
				
			||||||
@ -89,7 +86,7 @@
 | 
				
			|||||||
      justif = null
 | 
					      justif = null
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const val = await register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, ppData, identityCardFile.url, new Date(), outputs.equivalenceState, justif);
 | 
					    const val = await register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, profilepic.url, identityCardFile.url, new Date(), outputs.equivalenceState, justif);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (let item in externalCurrTab.value){
 | 
					    for (let item in externalCurrTab.value){
 | 
				
			||||||
      const temp = await uploadFile(externalCurrTab.value[item].justifdocUrl, "JustificationDocument")
 | 
					      const temp = await uploadFile(externalCurrTab.value[item].justifdocUrl, "JustificationDocument")
 | 
				
			||||||
@ -178,10 +175,10 @@
 | 
				
			|||||||
              </form>
 | 
					              </form>
 | 
				
			||||||
              <label class="browser">
 | 
					              <label class="browser">
 | 
				
			||||||
                {{i18n("login.guest.browse")}}
 | 
					                {{i18n("login.guest.browse")}}
 | 
				
			||||||
				        <input  type="file" :disabled="imageSaved" @change="ppData = uploadProfilePicture($event.target.files); imageSaved = true;" accept="image/*">
 | 
									        <input  type="file" :disabled="imageSaved" @change="ppData = $event.target.files; imageSaved = true;" accept="image/*">
 | 
				
			||||||
              </label>
 | 
					              </label>
 | 
				
			||||||
              <form novalidate enctype="multipart/form-data" class="inputBox">
 | 
					              <form novalidate enctype="multipart/form-data" class="inputBox">
 | 
				
			||||||
				        <input type="file" @change="uploadPP($event.target.files); imageSaved = true;" accept="image/*">
 | 
									        <input type="file" @change="imageSaved = true;" accept="image/*">
 | 
				
			||||||
              </form>
 | 
					              </form>
 | 
				
			||||||
              <div class="inputBox">
 | 
					              <div class="inputBox">
 | 
				
			||||||
                <p>{{i18n("Curriculum").toUpperCase()}}</p> 
 | 
					                <p>{{i18n("Curriculum").toUpperCase()}}</p> 
 | 
				
			||||||
@ -221,15 +218,17 @@
 | 
				
			|||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <button @click="page++;" style="margin-top: 10%">{{i18n("login.guest.nextpage")}}</button>
 | 
					              <button @click="page++;" style="margin-top: 10%">{{i18n("login.guest.nextpage")}}</button>
 | 
				
			||||||
 | 
					 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div v-if="page === 3">
 | 
					            <div v-if="page === 3">
 | 
				
			||||||
              <p style="color:rgb(239,60,168);margin-bottom: 5%">
 | 
					              <p style="color:rgb(239,60,168);margin-bottom: 5%">
 | 
				
			||||||
                {{i18n("login.guest.formationdisclaimer")}}
 | 
					                {{i18n("login.guest.formationdisclaimer")}}
 | 
				
			||||||
              </p>
 | 
					              </p>
 | 
				
			||||||
              <button @click="page++">{{i18n("login.guest.managecareer")}}</button>
 | 
					              <button @click="page++">{{i18n("login.guest.managecareer")}}</button>
 | 
				
			||||||
              <button @click="postRegisterReq();">{{ i18n("login.guest.sendRegReq") }}</button>
 | 
					              <button @click="postRegisterReq();page+=2">{{ i18n("login.guest.sendRegReq") }}</button>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					           <div v-if="page===5" style="margin-left: 7%">
 | 
				
			||||||
 | 
					             <p style="color: rgb(239,60,168);">{{i18n("reqsent")}}</p>
 | 
				
			||||||
 | 
					           </div>
 | 
				
			||||||
          </form>
 | 
					          </form>
 | 
				
			||||||
         </div>
 | 
					         </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@ -297,13 +296,7 @@
 | 
				
			|||||||
  cursor: pointer;
 | 
					  cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.bodu {
 | 
					
 | 
				
			||||||
  margin-top:2%;
 | 
					 | 
				
			||||||
  width:50%;
 | 
					 | 
				
			||||||
  border:2px solid black;
 | 
					 | 
				
			||||||
  border-radius:9px;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.switchpage{
 | 
					.switchpage{
 | 
				
			||||||
  width:100px;
 | 
					  width:100px;
 | 
				
			||||||
@ -342,22 +335,8 @@ input[type=file]{
 | 
				
			|||||||
  background:#FFFFFF;
 | 
					  background:#FFFFFF;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.container{
 | 
					 | 
				
			||||||
  margin-top: 2%;
 | 
					 | 
				
			||||||
  color:white;
 | 
					 | 
				
			||||||
  height:60px;
 | 
					 | 
				
			||||||
  font-size:30px;
 | 
					 | 
				
			||||||
  display:grid;
 | 
					 | 
				
			||||||
  grid-template-columns:30% 30% 20% 20%;
 | 
					 | 
				
			||||||
  grid-template-areas:
 | 
					 | 
				
			||||||
    "school formation completion edit remove";
 | 
					 | 
				
			||||||
  column-gap:10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
button:active ,.switchpage:active{
 | 
					button:active ,.switchpage:active{
 | 
				
			||||||
  opacity:0.8;
 | 
					  opacity:0.8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 | 
				
			|||||||
@ -67,7 +67,7 @@
 | 
				
			|||||||
          await alterCourse(course.courseID,{owner:toModify[element].regNo});
 | 
					          await alterCourse(course.courseID,{owner:toModify[element].regNo});
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if(element == "title" && (toModify[element] != course.title)){
 | 
					        else if(element == "title" && (toModify[element] != course.title)){
 | 
				
			||||||
         await alterCourse(course.courseId,{title:toModify[element]});
 | 
					         await alterCourse(course.courseID,{title:toModify[element]});
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else if(element == "credits" && (parseInt(toModify[element]) != course.credits)){
 | 
					        else if(element == "credits" && (parseInt(toModify[element]) != course.credits)){
 | 
				
			||||||
         await alterCourse(course.courseID,{credits:parseInt(toModify[element])});
 | 
					         await alterCourse(course.courseID,{credits:parseInt(toModify[element])});
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
  import {reactive, ref } from 'vue'
 | 
					  import {reactive, ref } from 'vue'
 | 
				
			||||||
  import {getSelf,alterSelf,disconnect,deleteUser} from '../rest/Users.js'
 | 
					  import {getSelf,alterSelf} from '../rest/Users.js'
 | 
				
			||||||
  import {getSelfCurriculum, getAllCurriculums, getSomeonesCurriculumList, getcurriculum} from '../rest/curriculum.js'
 | 
					  import {getAllCurriculums, getSomeonesCurriculumList, getcurriculum} from '../rest/curriculum.js'
 | 
				
			||||||
  import {getCourses} from "../rest/courses.js"
 | 
					  import {getCourses} from "../rest/courses.js"
 | 
				
			||||||
  import i18n from "@/i18n.js"
 | 
					  import i18n from "@/i18n.js"
 | 
				
			||||||
  import {uploadFile, uploadProfilePicture} from '@/rest/uploads.js'
 | 
					  import {uploadFile, uploadProfilePicture} from '@/rest/uploads.js'
 | 
				
			||||||
@ -119,16 +119,6 @@
 | 
				
			|||||||
     toModify.password= item.password;
 | 
					     toModify.password= item.password;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  async function unRegister(){
 | 
					 | 
				
			||||||
   deleteUser(user.value.regNo);
 | 
					 | 
				
			||||||
   disconnect()
 | 
					 | 
				
			||||||
   setTimeout(() => {
 | 
					 | 
				
			||||||
      window.location.href="#/home";
 | 
					 | 
				
			||||||
      }, "500");
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  function getPP(){
 | 
					  function getPP(){
 | 
				
			||||||
    if(user.value.profilePictureUrl === null){
 | 
					    if(user.value.profilePictureUrl === null){
 | 
				
			||||||
      return "/Clyde.png"
 | 
					      return "/Clyde.png"
 | 
				
			||||||
@ -136,14 +126,6 @@
 | 
				
			|||||||
    return user.profilePictureUrl
 | 
					    return user.profilePictureUrl
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function getYear(){
 | 
					 | 
				
			||||||
    let date = new Date();
 | 
					 | 
				
			||||||
    if (date.getMonth() <= 6){
 | 
					 | 
				
			||||||
      return date.getFullYear()-1
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return date.getFullYear()
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  async function refreshExtCurrList(){
 | 
					  async function refreshExtCurrList(){
 | 
				
			||||||
    extcurrlist.value = await getExternalCurriculumByUser(user.value.regNo)
 | 
					    extcurrlist.value = await getExternalCurriculumByUser(user.value.regNo)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -258,7 +240,7 @@
 | 
				
			|||||||
          <button @click="windowState=0">{{i18n("courses.back")}}</button>
 | 
					          <button @click="windowState=0">{{i18n("courses.back")}}</button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div v-else-if="windowState === 5" class="infosContainer">
 | 
					        <div v-else-if="windowState === 5" class="infosContainer">
 | 
				
			||||||
          <div v-if="minerv.value.toPay !== 0">
 | 
					          <div v-if="minerv.value.toPay > 0">
 | 
				
			||||||
            {{ i18n("payment") }} : {{minerv.value.toPay}}€ {{ i18n("lefttopay") }}
 | 
					            {{ i18n("payment") }} : {{minerv.value.toPay}}€ {{ i18n("lefttopay") }}
 | 
				
			||||||
            <div v-if="minerv.value.paidAmount <= 50">
 | 
					            <div v-if="minerv.value.paidAmount <= 50">
 | 
				
			||||||
              <button @click="windowState=6; paymentAmount = 50">{{ i18n("paydeposit") }} (50€)</button>
 | 
					              <button @click="windowState=6; paymentAmount = 50">{{ i18n("paydeposit") }} (50€)</button>
 | 
				
			||||||
@ -271,7 +253,7 @@
 | 
				
			|||||||
            {{ i18n("alreadypaid") }}
 | 
					            {{ i18n("alreadypaid") }}
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div>
 | 
					          <div>
 | 
				
			||||||
            <button @click="windowState=7">{{ i18n("askscholarship") }}</button>
 | 
					            <button @click="windowState=7" v-if="minerv.value.toPay <= 0">{{ i18n("askscholarship") }}</button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div v-if="windowState === 5">
 | 
					        <div v-if="windowState === 5">
 | 
				
			||||||
 | 
				
			|||||||
@ -79,3 +79,7 @@ export async function editExempReqState(id, newstate){
 | 
				
			|||||||
export async function getExempByUser(userId){
 | 
					export async function getExempByUser(userId){
 | 
				
			||||||
    return restGet("/exemptionreq/"+userId)
 | 
					    return restGet("/exemptionreq/"+userId)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export async function imposeCurriculum(id, cursusid){
 | 
				
			||||||
 | 
					    return restPatch("/request/registerequivimpose/"+id+"/"+cursusid)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user