Add course to Curriculum

This commit is contained in:
2024-04-21 21:50:38 +02:00
parent 05ed28626a
commit 69be9681ff
7 changed files with 93 additions and 15 deletions

View File

@ -105,6 +105,7 @@ courses.modify=Modify
courses.toDelete=Course to Delete
courses.confirm=Confirm
courses.back=Back
courses.AddToCurriculum=Add to a new Curriculum
profile.modify.data=Modify personnal data
profile.reRegister=Re-register
profile.unRegister=Unregister

View File

@ -105,6 +105,7 @@ courses.modify=Modifier
courses.toDelete=Cours à supprimer
courses.confirm=Confirmer
courses.back=Retour
courses.AddToCurriculum=Ajouter à un cursus
profile.modify.data=Modifier données personnelles
profile.reRegister=Réinsciption
profile.unRegister=Désinscription

View File

@ -3,7 +3,7 @@
import {reactive , ref} from 'vue'
import { getCourses,deleteCourse,alterCourse,createCourse } from "@/rest/courses.js"
import {getUser, getSelf, getTeachers } from "@/rest/Users.js"
import {getAllCurriculums} from "@/rest/curriculum.js";
import {addCourseToCurriculum, getAllCurriculums, getCurriculumsByCourse} from "@/rest/curriculum.js";
const self = await getSelf();
@ -11,11 +11,16 @@
const curriculum = ref(await getCourses(self.role));
const profList = await getTeachers();
const allCurriculums = ref(await getAllCurriculums());
const curriculumToAdd = ref();
const createMod = ref(false)
const deleteMod = ref(false)
const editElementID = ref("")
const editAddCourse = ref("");
const curriculumToAddId = ref()
const pattern = {
"id":null,
@ -45,7 +50,32 @@
}}
async function setAddToCurriculum(item){
let temp = [];
let courseCurriculum = await getCurriculumsByCourse(item.courseID);
let isIn = false;
for (let element in allCurriculums.value){
for (let item in courseCurriculum){
if((courseCurriculum[item].option == allCurriculums.value[element].option) && (courseCurriculum[item].year == allCurriculums.value[element].year) ){
isIn = true;
break;
}
}
if(!isIn){
temp.push(allCurriculums.value[element])
}
isIn = false;
}
curriculumToAdd.value = temp.slice();
}
async function addToCurriculum(item){
await addCourseToCurriculum(curriculumToAddId.value,item.courseID);
curriculumToAddId.value = null;
curriculumToAdd.value = null;
allCurriculums.value = await getAllCurriculums();
}
function setModify(item){
for(const el in profList){
@ -93,7 +123,7 @@
<button class="create" @click="editElementID= '';createMod = true;">
{{i18n("courses.createCourse")}}
</button>
<button class="delete" @click="deleteMod=true" >
<button class="delete" @click="deleteMod=true">
{{i18n("courses.deleteCourse")}}
</button>
</div>
@ -138,24 +168,39 @@
</div>
<div v-if="!createMod && !deleteMod" v-for="item in curriculum" :key="item.title" style="width:50%;margin-left:auto; margin-right:auto;">
<div v-if="editElementID !== item.title" style ="padding:15px 15px 15px 15px;">
<button @click="editElementID = item.title; setModify(item); ">
<div v-if="editElementID !== item.title && editAddCourse !== item.title" style ="padding:15px 15px 15px 15px;">
<button @click="editElementID = item.title; editAddCourse = ''; setModify(item); ">
{{i18n("courses.modify")}}
</button>
<button v-if="self.role !== 'Teacher'"@click="editAddCourse = item.title; editElementID ='';setAddToCurriculum(item)">Add to a new Curriculum</button>
</div>
<div v-else>
<div v-if="editElementID == item.title">
<button @click="editElementID= '';patchCourse(item)"> {{i18n("courses.confirm")}} </button>
<button @click="editElementID= '';"> {{i18n("courses.back")}} </button>
</div>
<div class="listElement" >
<div v-if="editAddCourse == item.title">
<button @click="editAddCourse= '';addToCurriculum(item)"> {{i18n("courses.confirm")}} </button>
<button @click="editAddCourse= '';"> {{i18n("courses.back")}} </button>
</div>
<div class="listElement">
<div class="containerElement" v-if="editElementID !== item.title" >
<div class="containerElement" v-if="editElementID !== item.title && editAddCourse !== item.title" >
<div class="name"> {{item.title}} </div>
<div class="teacher">{{item.owner.lastName}}</div>
<div class="credits">{{i18n("Credits")}}:{{item.credits}}</div>
</div>
<div class="containerElement"v-else>
<div class="containerElement" v-if="editAddCourse == item.title" >
{{i18n("Curriculum")}}:
<select v-model="curriculumToAddId">
<option v-for="element in curriculumToAdd" :value="element.curriculumId">
{{element.option}}-{{element.year}}
</option>
</select>
</div>
<div class="containerElement" v-if="editElementID == item.title">
<input style="max-width:200px;" class="name" v-model="toModify.title">
<select v-if="self.role != 'Secretary'" style="max-width:200px;" class="teacher" v-model="toModify.owner">
<option v-for="(item,index) in profList" :value='item'>{{item.lastName}}</option>
@ -164,6 +209,8 @@
<input v-if="self.role !='Secretary'"style="max-width:100px;"class="credits" v-model="toModify.credits">
<div v-else class="credits">{{i18n("Credits")}}:{{item.credits}}</div>
</div>
</div>
</div>
</div>

View File

@ -23,6 +23,9 @@ export async function getAllCurriculums(){
return restGet("/curriculums");
}
export async function getCurriculumsByCourse(id){
return restGet("/course/curriculum/"+ id);
}
/**
* Get informations on a particular curriculum
*
@ -53,4 +56,7 @@ export async function getSomeonesCurriculumList(user){
return restGet("/onescurriculum/"+user)
}
export async function addCourseToCurriculum(id,courseID){
return restPost("/curriculum/"+id, courseID);
}