Generalize the ExternalCurriculumList interface so it fits for inscriptionRequest, Studentlist, and inscriptionform
This commit is contained in:
		@ -62,7 +62,7 @@ async function editEquivalence(id, newstate){
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div v-if="list==true">
 | 
			
		||||
    <ExternalCurriculumList :ext-curr-list="externalCurriculum" :inscr-req-id="request.id"></ExternalCurriculumList>
 | 
			
		||||
    <ExternalCurriculumList :ext-curr-list="externalCurriculum" :mode="0"></ExternalCurriculumList>
 | 
			
		||||
    <div style="margin-left: 15%;margin-top: 5%;">
 | 
			
		||||
      <button style="margin-left: 2%" @click="list = false;editEquivalence(request.id, 'Accepted'); request.equivalenceState='Accepted'">Accept Equivalence</button>
 | 
			
		||||
      <button style="margin-left: 2%" @click="list = false;editEquivalence(request.id, 'Refused'); request.equivalenceState='Refused'">Refuse Equivalence</button>
 | 
			
		||||
 | 
			
		||||
@ -4,15 +4,23 @@
 | 
			
		||||
  import {getSelf} from "@/rest/Users.js";
 | 
			
		||||
  import {createExternalCurriculum, getExternalCurriculumByUser} from "@/rest/externalCurriculum.js";
 | 
			
		||||
 | 
			
		||||
  //mode 0 = externalcurr related to inscrreq, 1 = externalcurr related to user
 | 
			
		||||
  //mode 0 = externalcurr related to inscrreq, 1 = externalcurr related to user, 2 inscription procedure
 | 
			
		||||
  const props = defineProps(["extCurrList", "mode"])
 | 
			
		||||
 | 
			
		||||
  const extCurrList = ref(props.extCurrList)
 | 
			
		||||
  //Only usefull to pass the external curr array in the inscription procedure
 | 
			
		||||
  const externalCurrTab = defineModel();
 | 
			
		||||
 | 
			
		||||
  const extCurrList = ref({})
 | 
			
		||||
  let extNum = 0
 | 
			
		||||
  const User = ref({})
 | 
			
		||||
 | 
			
		||||
  if (props.mode === 1){
 | 
			
		||||
    User.value = await getSelf()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const User = await getSelf()
 | 
			
		||||
 | 
			
		||||
  const list = ref(true)
 | 
			
		||||
 | 
			
		||||
  const editmode = ref(false)
 | 
			
		||||
  const notcompletedCheck = ref(false);
 | 
			
		||||
 | 
			
		||||
  const externalCurr = reactive({
 | 
			
		||||
@ -28,22 +36,49 @@
 | 
			
		||||
 | 
			
		||||
  if (props.mode === 1){
 | 
			
		||||
    externalCurr.userRegNo = props.extCurrList[0].user.regNo
 | 
			
		||||
  }else if(props.mode === 2){
 | 
			
		||||
    extCurrList.value = externalCurrTab.value
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if(props.mode !== 2){
 | 
			
		||||
    extCurrList.value = props.extCurrList
 | 
			
		||||
    console.log("oe")
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function deleteExtCursus(extcursus){
 | 
			
		||||
    externalCurrTab.value.splice(externalCurrTab.value.indexOf(extcursus),1)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async function postExternalCurr(){
 | 
			
		||||
    await createExternalCurriculum(externalCurr.inscriptionRequestId, externalCurr.school, externalCurr.formation, externalCurr.completion, externalCurr.startYear, externalCurr.endYear, externalCurr.justifdocUrl, externalCurr.userRegNo);
 | 
			
		||||
    //We refresh the list
 | 
			
		||||
    extCurrList.value = await getExternalCurriculumByUser(externalCurr.userRegNo);
 | 
			
		||||
    list.value = !list.value;
 | 
			
		||||
    if (props.mode === 1){
 | 
			
		||||
      await createExternalCurriculum(externalCurr.inscriptionRequestId, externalCurr.school, externalCurr.formation, externalCurr.completion, externalCurr.startYear, externalCurr.endYear, externalCurr.justifdocUrl, externalCurr.userRegNo);
 | 
			
		||||
      //We refresh the list
 | 
			
		||||
      extCurrList.value = await getExternalCurriculumByUser(externalCurr.userRegNo);
 | 
			
		||||
      list.value = !list.value;
 | 
			
		||||
    }else if (props.mode === 2){
 | 
			
		||||
      externalCurrTab.value.push({
 | 
			
		||||
        inscriptionRequestId : externalCurr.inscriptionRequestId,
 | 
			
		||||
          school:externalCurr.school,
 | 
			
		||||
          formation :externalCurr.formation,
 | 
			
		||||
          completion : externalCurr.completion,
 | 
			
		||||
          startYear : externalCurr.startYear,
 | 
			
		||||
          endYear: externalCurr.endYear,
 | 
			
		||||
          justifdocUrl : externalCurr.justifdocUrl,
 | 
			
		||||
          userRegNo : externalCurr.userRegNo
 | 
			
		||||
      });
 | 
			
		||||
      extCurrList.value = externalCurrTab.value
 | 
			
		||||
      list.value = !list.value;
 | 
			
		||||
      console.log(externalCurrTab.value)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template style="margin-top:5%;">
 | 
			
		||||
  <div v-if="list">
 | 
			
		||||
    <div v-if="User.regNo === externalCurr.userRegNo" style="margin-left: 2%;margin-top: 2%">
 | 
			
		||||
    <div v-if="props.mode === 2||User.regNo === externalCurr.userRegNo" style="margin-left: 2%;margin-top: 2%">
 | 
			
		||||
      <button @click="list = !list">Add external curriculum</button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div style="display:flex; justify-content:center; " v-for="item in extCurrList">
 | 
			
		||||
    <div style="display:flex; justify-content:center; " v-for="(item, index) in extCurrList">
 | 
			
		||||
      <div class="bodu">
 | 
			
		||||
        <div class="container">
 | 
			
		||||
          <div class="status"><a style="margin-left:30px">{{item.state}}</a></div>
 | 
			
		||||
@ -51,6 +86,8 @@
 | 
			
		||||
          <div class="formation"><a>{{item.formation}}</a></div>
 | 
			
		||||
          <div class="completion"><a>{{item.completion}}</a></div>
 | 
			
		||||
          <div class="download"><button>Download document</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">Edit</button></div>
 | 
			
		||||
          <div class="delete" v-if="props.mode === 2"><button @click="deleteExtCursus(item)">Delete</button></div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@ -82,7 +119,8 @@
 | 
			
		||||
        <input type="number" v-model="externalCurr.endYear">
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="inputBox" style="margin-top: 3%; margin-bottom: 3%">
 | 
			
		||||
        <input type="submit" value="Upload curriculum" @click="postExternalCurr()">
 | 
			
		||||
        <input v-if="!editmode" type="submit" value="Upload curriculum" @click="postExternalCurr()">
 | 
			
		||||
        <input v-else type="submit" value="Edit curriculum" @click="externalCurrTab[extNum] = {inscriptionRequestId : externalCurr.inscriptionRequestId,school:externalCurr.school,formation :externalCurr.formation,completion : externalCurr.completion,startYear : externalCurr.startYear,endYear: externalCurr.endYear,justifdocUrl : externalCurr.justifdocUrl,userRegNo : externalCurr.userRegNo};editmode=!editmode;list=!list">
 | 
			
		||||
      </div>
 | 
			
		||||
    </form>
 | 
			
		||||
  </div>
 | 
			
		||||
@ -94,9 +132,9 @@
 | 
			
		||||
  height:100px;
 | 
			
		||||
  font-size:30px;
 | 
			
		||||
  display:grid;
 | 
			
		||||
  grid-template-columns:15% 10% 20% 15% 13.1%;
 | 
			
		||||
  grid-template-columns:5% 10% 20% 15% 20% 10%;
 | 
			
		||||
  grid-template-areas:
 | 
			
		||||
    "status school formation completion download";
 | 
			
		||||
    "status school formation completion download edit delete";
 | 
			
		||||
  column-gap:10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -106,6 +144,15 @@
 | 
			
		||||
  font-size: 70%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.edit{
 | 
			
		||||
  grid-area: edit;
 | 
			
		||||
  align-self: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.delete{
 | 
			
		||||
  grid-area: delete;
 | 
			
		||||
  align-self: center;
 | 
			
		||||
}
 | 
			
		||||
.school{
 | 
			
		||||
  grid-area:school;
 | 
			
		||||
  align-self:center;
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,8 @@
 | 
			
		||||
  import {toast} from 'vue3-toastify'
 | 
			
		||||
  import 'vue3-toastify/dist/index.css';
 | 
			
		||||
  import {createExternalCurriculum} from "@/rest/externalCurriculum.js";
 | 
			
		||||
  import ManageCourses from "@/Apps/ManageCourses.vue";
 | 
			
		||||
  import ExternalCurriculumList from "@/Apps/Inscription/ExternalCurriculumList.vue";
 | 
			
		||||
 | 
			
		||||
  const loginPage= ref(true)
 | 
			
		||||
  const page = ref(0)
 | 
			
		||||
@ -90,16 +92,11 @@
 | 
			
		||||
      await createExternalCurriculum(val.id, externalCurrTab.value[item].school, externalCurrTab.value[item].formation, externalCurrTab.value[item].completion, externalCurrTab.value[item].startYear, externalCurrTab.value[item].endYear, externalCurrTab.value[item].justifdocUrl);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  function deleteExtCursus(extcursus){
 | 
			
		||||
    externalCurrTab.value.splice(externalCurrTab.value.indexOf(extcursus),1)
 | 
			
		||||
  }
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="setup">
 | 
			
		||||
    <div class="setup" v-if="page !== 4">
 | 
			
		||||
      <div v-if="loginPage">
 | 
			
		||||
      <div class='loginBox' style="margin-top:30%;">
 | 
			
		||||
          <form @submit.prevent="login(outputs.email,outputs.password);goBackHome();"class="form">
 | 
			
		||||
@ -216,57 +213,16 @@
 | 
			
		||||
                Vous avez séléctionné un cursus qui possède des prérequis veuillez ajouter vos formations antérieures
 | 
			
		||||
                dans l'enseignement supérieur, votre dossier sera vérifié par un membre du service d'inscription.
 | 
			
		||||
              </p>
 | 
			
		||||
              <button @click="page++">Ajouter une formation</button>
 | 
			
		||||
              <button @click="page++">Gèrer mon parcours extérieur</button>
 | 
			
		||||
              <button @click="postRegisterReq();">Envoyer la demande d'inscription</button>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-if="page===4">
 | 
			
		||||
              <form @submit.prevent=""class="form">
 | 
			
		||||
                <div class="inputBox">
 | 
			
		||||
                  <p>Ecole</p>
 | 
			
		||||
                  <input type="text" v-model="externalCurr.school">
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="inputBox">
 | 
			
		||||
                  <p>Formation</p>
 | 
			
		||||
                  <input type="text" v-model="externalCurr.formation">
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="inputBox">
 | 
			
		||||
                  <p>Cochez la case si vous n'avez terminé cette formation</p>
 | 
			
		||||
                  <input v-model="notcompletedCheck" type="checkbox" id="checkboxformation">
 | 
			
		||||
                  <div v-if="notcompletedCheck">
 | 
			
		||||
                    <p>En quelle année de la formation vous êtes vous arrété (exemple: 3ème) ?</p>
 | 
			
		||||
                    <input type="text" v-model="externalCurr.completion">
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="inputBox">
 | 
			
		||||
                  <p>Année de début</p>
 | 
			
		||||
                  <input type="text" v-model="externalCurr.startYear">
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="inputBox">
 | 
			
		||||
                  <p>Année de fin</p>
 | 
			
		||||
                  <input type="text" v-model="externalCurr.endYear">
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="inputBox" style="margin-bottom:35px;">
 | 
			
		||||
                  <input type="submit" v-model="submitValue" @click="externalCurrTab.push({inscriptionReqId:null, school:externalCurr.school, formation:externalCurr.formation, completion:externalCurr.completion, startYear:externalCurr.startYear, endYear:externalCurr.endYear, justifdocUrl:externalCurr.justifdocUrl});console.log(externalCurrTab);page--;">
 | 
			
		||||
                </div>
 | 
			
		||||
              </form>
 | 
			
		||||
            </div>
 | 
			
		||||
          </form>
 | 
			
		||||
         </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div style="display:flex; justify-content:center; " v-for="item in externalCurrTab" v-if="page===3">
 | 
			
		||||
    <div class="bodu">
 | 
			
		||||
      <div class="container">
 | 
			
		||||
        <div class="school"><a style="margin-left:30px;">{{item.school}}</a></div>
 | 
			
		||||
        <div class="formation"><a>{{item.formation}}</a></div>
 | 
			
		||||
        <div class="edit">
 | 
			
		||||
          <button style="background-color:rgb(105,05,105);font-size:15px;height:50px;width:75%;border:none;border-radius:20px;" @click="externalCurr.school=item.school; externalCurr.completion=item.completion; externalCurr.formation=item.formation;externalCurr.endYear=item.endYear; externalCurr.startYear=item.startYear; externalCurr.justifdocUrl;page++;">Edit </button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="remove">
 | 
			
		||||
          <button style="background-color:rgb(105,05,105);font-size:15px;height:50px;width:75%;border:none;border-radius:20px;" @click="deleteExtCursus(item)">Remove </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  <div v-if="page===4">
 | 
			
		||||
    <ExternalCurriculumList v-model="externalCurrTab" :mode="2"></ExternalCurriculumList>
 | 
			
		||||
    <button style="margin-top: 2%;width: 5%; margin-left: 2%" @click="page--">Back</button>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user