mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 23:42:17 +00:00
Added method getAutocompleteSuggestions to Lehrveranstaltung_model.php
Get Lehrveranstaltungen by eventQuery string. Use with autocomplete event queries.
This commit is contained in:
@@ -15,6 +15,71 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Lehrveranstaltungen by eventQuery string. Use with autocomplete event queries.
|
||||
* @param $eventQuery String
|
||||
* @param string $studiensemester_kurzbz Filter by Studiensemester
|
||||
* @param array $oes Filter by Organisationseinheiten
|
||||
* @return array
|
||||
*/
|
||||
public function getAutocompleteSuggestions($eventQuery, $studiensemester_kurzbz = null, $oes = null)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$eventQuery = '%' . $eventQuery . '%';
|
||||
|
||||
$qry = '
|
||||
SELECT DISTINCT ON (lv_oe_kurzbz, stg_bezeichnung, lehrveranstaltung_id)
|
||||
le.studiensemester_kurzbz,
|
||||
lv.oe_kurzbz AS "lv_oe_kurzbz",
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_bezeichnung",
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
stg.bezeichnung AS "stg_bezeichnung",
|
||||
lv.semester,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung"
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung lv
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter negative studiengaenge */
|
||||
stg.studiengang_kz > 0 ';
|
||||
|
||||
if (isset($studiensemester_kurzbz) && is_string($studiensemester_kurzbz))
|
||||
{
|
||||
/* filter studiensemester */
|
||||
$qry.= ' AND le.studiensemester_kurzbz = ? ';
|
||||
$params[]= $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($oes) && is_array($oes))
|
||||
{
|
||||
/* filter organisationseinheit */
|
||||
$qry.= ' AND lv.oe_kurzbz IN ? ';
|
||||
$params[]= $oes;
|
||||
}
|
||||
|
||||
$qry.= '
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter by search entry */
|
||||
AND lv.bezeichnung ILIKE ?
|
||||
';
|
||||
|
||||
$params[]= $eventQuery;
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets unique Groupstrings for Lehrveranstaltungen, e.g. WS2018_BIF_1_PRJM_VZ_LV12345
|
||||
* @param string $studiensemester_kurzbz
|
||||
|
||||
Reference in New Issue
Block a user