From 19753a9ef7788f0237a08299312845e3031d0953 Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Tue, 2 Jul 2024 14:50:54 +0200 Subject: [PATCH] test api endpoint to include the lvinfo menu link --- .../models/ressource/Stundenplan_model.php | 3 +- include/lehreinheit.class.php | 39 +++++++++++++++++++ public/js/api/addons.js | 10 +++++ public/js/api/fhcapifactory.js | 2 + public/js/components/Cis/Mylv/LvUebersicht.js | 11 ++++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 public/js/api/addons.js diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php index 5ec6ea302..7b7bc24cd 100755 --- a/application/models/ressource/Stundenplan_model.php +++ b/application/models/ressource/Stundenplan_model.php @@ -19,11 +19,12 @@ class Stundenplan_model extends DB_Model */ public function loadForUid($uid) { - $this->addSelect('sp.*'); + $this->addSelect(['sp.*','le.studiensemester_kurzbz']); $this->db->join('public.tbl_benutzergruppe bg', 'sp.gruppe_kurzbz=bg.gruppe_kurzbz AND bg.uid=?', 'LEFT', false); $this->addJoin('public.tbl_studiensemester ss1', 'bg.studiensemester_kurzbz=ss1.studiensemester_kurzbz AND ss1.start<=sp.datum AND ss1.ende>=sp.datum', 'LEFT'); $this->db->join('public.tbl_studentlehrverband slv', "sp.studiengang_kz=slv.studiengang_kz AND slv.student_uid=? AND (slv.semester=sp.semester OR sp.semester IS NULL) AND (slv.verband=sp.verband OR sp.verband IS NULL OR sp.verband='' OR sp.verband='0') AND (slv.gruppe=sp.gruppe OR sp.gruppe IS NULL OR sp.gruppe='' OR sp.gruppe='0') AND sp.gruppe_kurzbz IS NULL", 'LEFT', false); $this->addJoin('public.tbl_studiensemester ss2', 'slv.studiensemester_kurzbz=ss2.studiensemester_kurzbz AND ss2.start<=sp.datum AND ss2.ende>=sp.datum', 'LEFT'); + $this->addJoin('lehre.tbl_lehreinheit le', 'le.lehreinheit_id=sp.lehreinheit_id', 'LEFT'); $this->db->or_where('ss1.studiensemester_kurzbz IS NOT NULL', null, false); $this->db->or_where('ss2.studiensemester_kurzbz IS NOT NULL', null, false); diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php index 6bf1f7282..bf26f47b9 100755 --- a/include/lehreinheit.class.php +++ b/include/lehreinheit.class.php @@ -1122,4 +1122,43 @@ class lehreinheit extends basis_db return $ret; } + + +public function lehreinheitInfo($lvid,$angezeigtes_stsem,$lehrfach_id) +{ + $qry = "SELECT * FROM (SELECT distinct on(uid) vorname, nachname, tbl_benutzer.uid as uid, + CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN true ELSE false END as lvleiter + FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person + WHERE + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND + tbl_person.person_id=tbl_benutzer.person_id AND + lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER)." AND + tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND + tbl_benutzer.aktiv=true AND tbl_person.aktiv=true AND + studiensemester_kurzbz=".$this->db_add_param($angezeigtes_stsem); + + if($lehrfach_id!='') + $qry.=" AND tbl_lehreinheit.lehrfach_id=".$this->db_add_param($lehrfach_id); + + $qry.=" ORDER BY uid, lvleiter desc) as a ORDER BY lvleiter desc, nachname, vorname"; + + $result = $this->db_query($qry); + if (!$result) + { + $this->errormsg=$this->db_last_error().$qry; + return false; + } + $ret = array(); + + while($row = $this->db_fetch_object($result)) + { + $ret[] = $row; + } + + return $ret; } +} + + + diff --git a/public/js/api/addons.js b/public/js/api/addons.js new file mode 100644 index 000000000..b40ea65cb --- /dev/null +++ b/public/js/api/addons.js @@ -0,0 +1,10 @@ +export default { + getAddonLink(addon, lehrveranstaltung_id, studiensemester_kurzbz) { + return this.$fhcApi.get( + FHC_JS_DATA_STORAGE_OBJECT.app_root + + `/addons/${addon}/cis/testapi.php`, + { lehrveranstaltung_id: lehrveranstaltung_id, + studiensemester_kurzbz: studiensemester_kurzbz } + ); + }, + } \ No newline at end of file diff --git a/public/js/api/fhcapifactory.js b/public/js/api/fhcapifactory.js index c2ba6b5da..0f0d6a53b 100644 --- a/public/js/api/fhcapifactory.js +++ b/public/js/api/fhcapifactory.js @@ -23,6 +23,7 @@ import studstatus from "./studstatus.js"; import ort from "./ort.js"; import cms from "./cms.js"; import lehre from "./lehre.js"; +import addons from "./addons.js"; export default { search, @@ -33,4 +34,5 @@ export default { ort, cms, lehre, + addons, }; diff --git a/public/js/components/Cis/Mylv/LvUebersicht.js b/public/js/components/Cis/Mylv/LvUebersicht.js index ed992da5d..7c16b8fb9 100644 --- a/public/js/components/Cis/Mylv/LvUebersicht.js +++ b/public/js/components/Cis/Mylv/LvUebersicht.js @@ -32,9 +32,20 @@ export default { // prepare the mailto link with all the emails from the students of the lv this.emailAnStudierende = "mailto:"+res.data.join(","); }); + + this.$fhcApi.factory.addons.getAddonLink("lvinfo",this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz).then(res =>{ + console.log(res,"this is the result from the api call"); + }); }, }, mounted(){ + + + // make axios call to the active addons + /* $addon_obj->loadAddons(); + foreach($addon_obj->result as $addon) + { + if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) */ this.modal = this.$refs.modalContainer; },