diff --git a/application/controllers/api/frontend/v1/Studium.php b/application/controllers/api/frontend/v1/Studium.php index 7541a823b..b14a852a6 100644 --- a/application/controllers/api/frontend/v1/Studium.php +++ b/application/controllers/api/frontend/v1/Studium.php @@ -132,6 +132,14 @@ class Studium extends FHCAPI_Controller $aktuelles_studienplan = $parameter_studienplan ; } + // fetch studienplan lehrveranstaltungen + if($aktuelles_studienplan){ + $lehrveranstaltungen = $this->computeStudienplanLehrveranstaltungen($aktuelles_studienplan->studienplan_id, $aktuelles_semester); + $aktuelles_lehrveranstaltungen = $lehrveranstaltungen; + }else{ + $aktuelles_lehrveranstaltungen = []; + } + // result object $result = new stdClass(); $result->studienSemester = []; @@ -142,7 +150,8 @@ class Studium extends FHCAPI_Controller $result->semester["all"] =$semester; $result->semester["preselected"] =$aktuelles_semester; $result->studienplan["all"]=$semester_studienplan; - $result->studienplan["preselected"]=$aktuelles_studienplan; + $result->studienplan["preselected"]=$aktuelles_studienplan; + $result->lehrveranstaltungen=$aktuelles_lehrveranstaltungen; $result->test1=$test1; $result->test2=$test2; $result->test3=$test3; @@ -201,6 +210,36 @@ class Studium extends FHCAPI_Controller return $studienplaene; } + private function computeStudienplanLehrveranstaltungen($studienplan_id, $semester){ + $lehrveranstaltungen = $this->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester); + $lehrveranstaltungen = $this->getDataOrTerminateWithError($lehrveranstaltungen); + usort($lehrveranstaltungen, function($a, $b){ + if($a->lehrtyp_kurzbz == "modul"){ + return -1; + } + else if($b->lehrtyp_kurzbz == "modul"){ + return 1; + } + return 0; + }); + $lehrveranstaltungen= array_reduce($lehrveranstaltungen,function($carry, $lehrv){ + if($lehrv->lehrtyp_kurzbz == "modul"){ + array_push($carry, $lehrv); + } + else{ + $parent =array_filter($carry, function($item)use($lehrv){ + return $item->studienplan_lehrveranstaltung_id == $lehrv->studienplan_lehrveranstaltung_id_parent; + }); + $parent = current($parent); + if($parent){ + $parent->lehrveranstaltungen[] = $lehrv; + } + } + return $carry; + }, []); + return $lehrveranstaltungen; + } + private function computeStudiengaenge($studiensemester){ $studiengang_studiensemester_result = $this->StudiengangModel->getStudiengaengeByStudiensemester($studiensemester); $studiengang_studiensemester_result = $this->getDataOrTerminateWithError($studiengang_studiensemester_result); diff --git a/public/js/components/Cis/Mylv/LvInfo.js b/public/js/components/Cis/Mylv/LvInfo.js index 514e34779..e248f523f 100644 --- a/public/js/components/Cis/Mylv/LvInfo.js +++ b/public/js/components/Cis/Mylv/LvInfo.js @@ -58,13 +58,13 @@ export default {
| {{ $p.t('global','datum')? $p.t('global','datum')+':' :'' }} | -{{methodFormatDate(event.datum)}} | +{{methodFormatDate(event?.datum)}} |
|---|---|---|
| {{$p.t('global','aktivitaet')}}: | @@ -100,7 +100,7 @@ export default { -||
{{
$p.t('global','datum')?
$p.t('global','datum')+':'
diff --git a/public/js/components/Cis/Mylv/LvModal.js b/public/js/components/Cis/Mylv/LvModal.js
index f4ac6edfc..4e4f30aea 100644
--- a/public/js/components/Cis/Mylv/LvModal.js
+++ b/public/js/components/Cis/Mylv/LvModal.js
@@ -51,7 +51,7 @@ export default {
if (this.event.type == 'lehreinheit') {
this.$api
- .call(ApiStundenplan.getLehreinheitStudiensemester(this.event.lehreinheit_id[0]))
+ .call(ApiStundenplan.getLehreinheitStudiensemester(Array.isArray(this.event.lehreinheit_id) ? this.event.lehreinheit_id[0] : this.event.lehreinheit_id))
.then(res => res.data)
.then(studiensemester_kurzbz => this.$api.call(
ApiAddons.getLvMenu(
diff --git a/public/js/components/Cis/Studium/Studium.js b/public/js/components/Cis/Studium/Studium.js
index 94a012fc9..c7b92b6a7 100644
--- a/public/js/components/Cis/Studium/Studium.js
+++ b/public/js/components/Cis/Studium/Studium.js
@@ -1,3 +1,5 @@
+import LvModal from "../Mylv/LvModal.js";
+
export default {
data(){
return {
@@ -9,8 +11,13 @@ export default {
selectedStudienordnung: null,
semester:[],
selectedSemester:null,
+ lehrveranstaltungen: [],
+ selectedLehrveranstaltung: null,
}
},
+ components:{
+ LvModal,
+ },
methods:{
changeSelectedStudienSemester(studiensemester) {
this.$fhcApi.factory.studium.getAllStudienSemester(studiensemester.studiensemester_kurzbz, this.selectedStudiengang, this.selectedSemester, this.selectedStudienordnung)
@@ -40,6 +47,16 @@ export default {
this.extractPropertyValues(res);
})
},
+ selectLehrveranstaltung(lehrveranstaltung) {
+ this.selectedLehrveranstaltung = lehrveranstaltung;
+ this.selectedLehrveranstaltung.type ="lehreinheit";
+ this.selectedLehrveranstaltung.lehreinheit_id = this.selectedLehrveranstaltung.lehrveranstaltung_id;
+ console.log(this.selectedLehrveranstaltung, "selected lehrveranstaltung")
+ Vue.nextTick(()=>{
+ this.$refs.modalContainer.show();
+ })
+
+ },
/* loadStudienplan(studiengang, studiensemester){
this.$fhcApi.factory.studium.getStudienplaeneBySemester(studiengang, studiensemester)
.then(data => data.data)
@@ -63,7 +80,7 @@ export default {
location.hash = val;
},
extractPropertyValues(res){
- let { studienSemester, studiengang, semester, studienplan } = res;
+ let { studienSemester, studiengang, semester, studienplan, lehrveranstaltungen } = res;
this.sortStudienSemester(studienSemester.all);
this.studienSemester = studienSemester.all;
this.selectedStudiensemester = studienSemester.preselected.studiensemester_kurzbz;
@@ -78,6 +95,8 @@ export default {
this.studienOrdnung = studienplan.all;
console.log(this.studienOrdnung,"studienordnung")
this.selectedStudienordnung = studienplan.preselected?.studienplan_id;
+
+ this.lehrveranstaltungen = lehrveranstaltungen;
},
studienordnungTitel(studienordnung){
if(!studienordnung) return "";
@@ -141,7 +160,9 @@ export default {
}
} */
template: `
- this is a test titel+
+
`
};
\ No newline at end of file
Studium++ +
+
+
+
+
+
+
+ {{lehrveranstaltung.bezeichnung}}+{{lehrveranstaltung.lehrtyp_kurzbz}}+ |