diff --git a/application/controllers/api/frontend/v1/Lehre.php b/application/controllers/api/frontend/v1/Lehre.php index a36b673b4..c25dc1986 100644 --- a/application/controllers/api/frontend/v1/Lehre.php +++ b/application/controllers/api/frontend/v1/Lehre.php @@ -29,6 +29,7 @@ class Lehre extends FHCAPI_Controller { parent::__construct([ 'lvStudentenMail' => self::PERM_LOGGED, + 'LV' => self::PERM_LOGGED, ]); @@ -65,6 +66,18 @@ class Lehre extends FHCAPI_Controller $this->terminateWithSuccess($studentenMails); } + public function LV($studiensemester_kurzbz, $lehrveranstaltung_id) + { + $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); + + $result = $this->LehrveranstaltungModel->getLvsByStudentWithGrades(getAuthUID(), $studiensemester_kurzbz, getUserLanguage(), $lehrveranstaltung_id); + + $result = current($this->getDataOrTerminateWithError($result)); + + $this->terminateWithSuccess($result); + } + + diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index f5bda513b..f2f762b7f 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -550,10 +550,11 @@ class Lehrveranstaltung_model extends DB_Model * @param string $student_uid * @param string $studiensemester_kurzbz * @param string|null $sprache + * @param number|null $lvid - returns only information about that single lv if the parameter is set * * @return stdClass */ - public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null) + public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null, $lvid=null) { if ($sprache) { $sprache_qry = $this->db->compile_binds('SELECT index FROM public.tbl_sprache WHERE sprache = ?', [$sprache]); @@ -615,6 +616,10 @@ class Lehrveranstaltung_model extends DB_Model $this->addJoin('campus.vw_student_lehrveranstaltung v', 'lehrveranstaltung_id'); $this->addJoin('public.tbl_studiengang sg', $this->dbTable . '.studiengang_kz = sg.studiengang_kz'); $this->db->where("v.lehreverzeichnis<>''"); + if(isset($lvid)) + { + $this->db->where("v.lehrveranstaltung_id", $lvid); + } $this->addJoin('campus.tbl_lvgesamtnote gn', 'gn.lehrveranstaltung_id=v.lehrveranstaltung_id AND gn.student_uid=v.uid AND gn.studiensemester_kurzbz=v.studiensemester_kurzbz', 'LEFT'); $this->addJoin('lehre.tbl_note gnn', 'gn.note=gnn.note', 'LEFT'); diff --git a/application/views/Cis/MyLv.php b/application/views/Cis/MyLv.php index b4159402d..347a66cb7 100644 --- a/application/views/Cis/MyLv.php +++ b/application/views/Cis/MyLv.php @@ -1,7 +1,8 @@ 'MyLv', - 'customJSModules' => ['public/js/apps/Cis/MyLv/Student.js'] + 'customJSModules' => ['public/js/apps/Cis/MyLv/Student.js'], + 'customCSSs' => ['public/css/components/MyLv.css'] ); $this->load->view('templates/CISVUE-Header', $includesArray); diff --git a/public/css/components/MyLv.css b/public/css/components/MyLv.css new file mode 100644 index 000000000..a3a3dd23f --- /dev/null +++ b/public/css/components/MyLv.css @@ -0,0 +1,4 @@ +.unavailable, .unavailable:hover{ + color: #565e647f !important; + cursor: default; +} \ No newline at end of file diff --git a/public/js/api/lehre.js b/public/js/api/lehre.js index d3117948e..743439722 100644 --- a/public/js/api/lehre.js +++ b/public/js/api/lehre.js @@ -7,4 +7,10 @@ export default { { lehreinheit_id: lehreinheit_id } ); }, + getLvInfo(studiensemester_kurzbz, lehrveranstaltung_id) { + return this.$fhcApi.get( + `/api/frontend/v1/Lehre/LV/${studiensemester_kurzbz}/${lehrveranstaltung_id}` + , {} + ); + }, } \ No newline at end of file diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang.js b/public/js/components/Cis/Mylv/Semester/Studiengang.js index 56605d308..1c4510112 100644 --- a/public/js/components/Cis/Mylv/Semester/Studiengang.js +++ b/public/js/components/Cis/Mylv/Semester/Studiengang.js @@ -36,7 +36,7 @@ export default { {{semester}}.{{p.t('lehre/semester')}}