mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
userstory 61241: bugs behoben
This commit is contained in:
@@ -39,6 +39,12 @@ class Lehrveranstaltung extends FHCAPI_Controller
|
||||
$this->_ci->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
|
||||
$this->_ci->load->library('VariableLib', ['uid' => $this->_uid]);
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'ui'
|
||||
)
|
||||
);
|
||||
}
|
||||
public function loadByEmployee($mitarbeiter_uid = null, $stg_kz = null)
|
||||
{
|
||||
@@ -54,7 +60,7 @@ class Lehrveranstaltung extends FHCAPI_Controller
|
||||
|
||||
foreach ($lehrveranstaltungen_data as $lehrveranstaltung)
|
||||
{
|
||||
$lehreinheiten = $this->_ci->LehreinheitModel->getLEByLV($lehrveranstaltung->lehrveranstaltung_id, $studiensemester_kurzbz, $mitarbeiter_uid);
|
||||
$lehreinheiten = $this->_ci->LehreinheitModel->getByLvidStudiensemester($lehrveranstaltung->lehrveranstaltung_id, $studiensemester_kurzbz, $mitarbeiter_uid);
|
||||
$lehreinheiten_data = $this->getDataOrTerminateWithError($lehreinheiten);
|
||||
|
||||
if (!isset($lehrveranstaltung->_children))
|
||||
@@ -69,8 +75,8 @@ class Lehrveranstaltung extends FHCAPI_Controller
|
||||
|
||||
public function loadByStudiengang($studiengang_kz = null, $semester = null)
|
||||
{
|
||||
if (is_null($studiengang_kz) || !ctype_digit((string)$studiengang_kz))
|
||||
$this->terminateWithError( $this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
if (is_null($studiengang_kz) || !preg_match("/^-?[1-9][0-9]*$/", (string)$studiengang_kz))
|
||||
$this->terminateWithError($this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$verband = null;
|
||||
if (!is_null($semester) && !is_numeric($semester))
|
||||
@@ -164,7 +170,7 @@ class Lehrveranstaltung extends FHCAPI_Controller
|
||||
if (is_null($lehrveranstaltung_id) || !ctype_digit((string)$lehrveranstaltung_id))
|
||||
$this->terminateWithError( $this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->_ci->LehrveranstaltungModel->addSelect('lehrveranstaltung_id, lehrform_kurzbz, lehre, bezeichnung as lvbezeichnung');
|
||||
$this->_ci->LehrveranstaltungModel->addSelect('lehrveranstaltung_id, lehrform_kurzbz, lehre, bezeichnung as lvbezeichnung, sprache');
|
||||
$lehrveranstaltung_result = $this->_ci->LehrveranstaltungModel->loadWhere(array('lehrveranstaltung_id' => $lehrveranstaltung_id));
|
||||
$lehrveranstaltung_result = $this->getDataOrTerminateWithError($lehrveranstaltung_result);
|
||||
$lehrveranstaltung = $lehrveranstaltung_result[0];
|
||||
@@ -202,7 +208,7 @@ class Lehrveranstaltung extends FHCAPI_Controller
|
||||
|
||||
foreach ($lehrveranstaltungen_data as $lehrveranstaltung)
|
||||
{
|
||||
$lehreinheiten = $this->LehreinheitModel->getLEByLV($lehrveranstaltung->lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
$lehreinheiten = $this->LehreinheitModel->getByLvidStudiensemester($lehrveranstaltung->lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
$lehreinheiten_data = $this->getDataOrTerminateWithError($lehreinheiten);
|
||||
|
||||
if (!isset($lehrveranstaltung->_children))
|
||||
|
||||
@@ -19,6 +19,13 @@ class Gruppe extends FHCAPI_Controller
|
||||
|
||||
$this->_ci = &get_instance();
|
||||
$this->_setAuthUID();
|
||||
$this->_ci->load->library('PhrasesLib');
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'ui'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_ci->load->model('organisation/Gruppe_model', 'GruppeModel');
|
||||
$this->_ci->load->model('organisation/Lehrverband_model', 'LehrverbandModel');
|
||||
$this->_ci->load->model('education/Lehreinheitgruppe_model', 'LehreinheitgruppeModel');
|
||||
@@ -57,10 +64,6 @@ class Gruppe extends FHCAPI_Controller
|
||||
if (is_null($lehreinheit_id) || !ctype_digit((string)$lehreinheit_id) || is_null($gid) || !ctype_digit((string)$gid) || is_null($lehrverband))
|
||||
$this->terminateWithError( $this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$gruppe_result = $this->_ci->GruppeModel->loadWhere(array('gid' => $gid));
|
||||
if (!hasData($gruppe_result) || isError($gruppe_result))
|
||||
$this->terminateWithError( $this->p->t('ui', 'ungueltigeParameter'), self::ERROR_TYPE_GENERAL);
|
||||
|
||||
$this->checkPermission($lehreinheit_id);
|
||||
|
||||
$result = $this->_ci->LehreinheitgruppeModel->addGroup($lehreinheit_id, $gid, !($lehrverband === 'false'));
|
||||
|
||||
@@ -164,7 +164,6 @@ class Lehreinheit extends FHCAPI_Controller
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
|
||||
$updateData = array();
|
||||
foreach ($updatableFields as $field)
|
||||
{
|
||||
@@ -183,6 +182,12 @@ class Lehreinheit extends FHCAPI_Controller
|
||||
$updateData
|
||||
);
|
||||
|
||||
if (!isset($updateData['unr']))
|
||||
{
|
||||
$unr = getData($result);
|
||||
$this->_ci->LehreinheitModel->update($unr, array('unr' => $unr));
|
||||
}
|
||||
|
||||
$this->terminateWithSuccess($result);
|
||||
}
|
||||
|
||||
|
||||
@@ -335,7 +335,7 @@ EOSQL;
|
||||
}
|
||||
|
||||
|
||||
public function getByLvidStudiensemester($lv_id, $studiensemester_kurzbz)
|
||||
public function getByLvidStudiensemester($lv_id, $studiensemester_kurzbz, $mitarbeiter_uid = null, $fachbereich_kurzbz = null)
|
||||
{
|
||||
$qry = "WITH lehreinheiten AS (
|
||||
SELECT *
|
||||
@@ -343,98 +343,64 @@ EOSQL;
|
||||
WHERE lehrveranstaltung_id = ?
|
||||
AND studiensemester_kurzbz = ?
|
||||
),
|
||||
gruppen AS (
|
||||
SELECT
|
||||
COALESCE(
|
||||
string_agg(
|
||||
tbl_lehreinheitgruppe.gruppe_kurzbz, ' '
|
||||
) FILTER (WHERE NOT direktinskription),
|
||||
string_agg(
|
||||
COALESCE(
|
||||
upper(tbl_studiengang.typ::varchar(1) ||tbl_studiengang.kurzbz) ||
|
||||
'-'||
|
||||
COALESCE(tbl_lehreinheitgruppe.semester::varchar, '') ||
|
||||
COALESCE(tbl_lehreinheitgruppe.verband::varchar, '')||
|
||||
COALESCE(tbl_lehreinheitgruppe.gruppe, '')), ', '
|
||||
)
|
||||
) AS gruppe,
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
GROUP BY lehreinheit_id
|
||||
),
|
||||
mitarbeiter AS (
|
||||
SELECT kurzbz, semesterstunden, planstunden, lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
|
||||
),
|
||||
fachbereich AS (
|
||||
SELECT
|
||||
tbl_organisationseinheit.bezeichnung,
|
||||
tbl_organisationseinheit.organisationseinheittyp_kurzbz,
|
||||
lehreinheit_id
|
||||
FROM
|
||||
public.tbl_organisationseinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
|
||||
AND lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
|
||||
),
|
||||
tag_data_agg AS (
|
||||
SELECT
|
||||
lehreinheit_id,
|
||||
COALESCE(json_agg(tag ORDER BY id), '[]'::json) AS tags
|
||||
FROM (
|
||||
SELECT DISTINCT ON (public.tbl_notiz.notiz_id)
|
||||
tbl_notiz.notiz_id AS id,
|
||||
typ_kurzbz,
|
||||
array_to_json(tbl_notiz_typ.bezeichnung_mehrsprachig)->>0 AS beschreibung,
|
||||
text AS notiz,
|
||||
style,
|
||||
erledigt AS done,
|
||||
lehreinheit_id
|
||||
FROM public.tbl_notizzuordnung
|
||||
JOIN public.tbl_notiz ON tbl_notizzuordnung.notiz_id = tbl_notiz.notiz_id
|
||||
JOIN public.tbl_notiz_typ ON tbl_notiz.typ = tbl_notiz_typ.typ_kurzbz
|
||||
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehreinheiten)
|
||||
) AS tag
|
||||
GROUP BY lehreinheit_id
|
||||
)
|
||||
". $this->_getGruppenCTE() . ",
|
||||
". $this->_getLektorenCTE() . ",
|
||||
". $this->_getFachbereichCTE() . ",
|
||||
". $this->_getTagsCTE() . "
|
||||
|
||||
SELECT lehreinheiten.*,
|
||||
lehreinheiten.lehrform_kurzbz as lv_lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.kurzbz as lv_kurzbz,
|
||||
tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung,
|
||||
COALESCE(tag_data_agg.tags, '[]'::json) AS tags,
|
||||
(
|
||||
SELECT string_agg(gr.gruppe, ' ')
|
||||
FROM gruppen gr
|
||||
WHERE gr.lehreinheit_id = lehreinheiten.lehreinheit_id
|
||||
) AS gruppen,
|
||||
(
|
||||
SELECT string_agg(ma.kurzbz, ' ')
|
||||
FROM mitarbeiter ma
|
||||
WHERE ma.lehreinheit_id = lehreinheiten.lehreinheit_id
|
||||
) AS lektoren,
|
||||
(
|
||||
SELECT string_agg(fachbereich.bezeichnung, ' ')
|
||||
FROM fachbereich
|
||||
WHERE fachbereich.lehreinheit_id = lehreinheiten.lehreinheit_id
|
||||
) AS fachbereich
|
||||
gruppen.gruppen,
|
||||
mitarbeiter.lektoren,
|
||||
mitarbeiter.le_planstunden,
|
||||
mitarbeiter.semesterstunden,
|
||||
fachbereich.bezeichnung as fachbereich,
|
||||
UPPER(CONCAT(tbl_studiengang.typ,tbl_studiengang.kurzbz)) as studiengang,
|
||||
semester
|
||||
FROM lehreinheiten
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = lehreinheiten.lehrfach_id
|
||||
LEFT JOIN tag_data_agg ON tag_data_agg.lehreinheit_id = lehreinheiten.lehreinheit_id";
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN tag_data_agg ON tag_data_agg.lehreinheit_id = lehreinheiten.lehreinheit_id
|
||||
LEFT JOIN mitarbeiter ON lehreinheiten.lehreinheit_id = mitarbeiter.lehreinheit_id
|
||||
LEFT JOIN fachbereich ON lehreinheiten.lehreinheit_id = fachbereich.lehreinheit_id
|
||||
LEFT JOIN gruppen ON lehreinheiten.lehreinheit_id = gruppen.lehreinheit_id
|
||||
WHERE true
|
||||
";
|
||||
|
||||
return $this->execReadOnlyQuery($qry, array($lv_id, $studiensemester_kurzbz));
|
||||
$params = array($lv_id, $studiensemester_kurzbz);
|
||||
|
||||
if ($mitarbeiter_uid !== null)
|
||||
{
|
||||
$qry .= " AND lehreinheiten.lehreinheit_id IN ( SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE mitarbeiter_uid = ?) ";
|
||||
$params[] = $mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($fachbereich_kurzbz !== null)
|
||||
{
|
||||
$qry .= " AND EXISTS ( SELECT 1 FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_fachbereich USING(oe_kurzbz) WHERE fachbereich_kurzbz= ? AND lehrveranstaltung_id=lehreinheiten.lehrfach_id)";
|
||||
$params[] = $fachbereich_kurzbz;
|
||||
}
|
||||
$qry .= " ORDER BY lehrveranstaltung_id;";
|
||||
|
||||
return $this->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
|
||||
private function getLVTmp($stg_kz = null)
|
||||
{
|
||||
$qry = "SELECT DISTINCT ON(lehrveranstaltung_id) *,
|
||||
'' as studienplan_id, '' as studienplan_beeichnung,
|
||||
CONCAT(vw_lehreinheit.stg_typ, vw_lehreinheit.stg_kurzbz) as studiengang
|
||||
FROM campus.vw_lehreinheit
|
||||
'' as stundenblockung,
|
||||
'' as lehreinheit_id,
|
||||
'' as wochenrythmus,
|
||||
'' as raumtyp,
|
||||
'' as raumtypalternativ,
|
||||
'' as gruppen,
|
||||
'' as studienplan_id,
|
||||
'' as studienplan_beeichnung,
|
||||
UPPER(CONCAT(vw_lehreinheit.stg_typ, vw_lehreinheit.stg_kurzbz)) as studiengang
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE mitarbeiter_uid = ?
|
||||
AND studiensemester_kurzbz = ?";
|
||||
|
||||
@@ -460,89 +426,6 @@ EOSQL;
|
||||
return $this->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getLEByLV($lv_id, $studiensemester_kurzbz, $mitarbeiter_uid = null, $fachbereich_kurzbz = null)
|
||||
{
|
||||
$qry = "
|
||||
WITH gruppen AS (
|
||||
SELECT
|
||||
COALESCE(
|
||||
string_agg(
|
||||
tbl_lehreinheitgruppe.gruppe_kurzbz, ', '
|
||||
) FILTER (WHERE NOT direktinskription),
|
||||
string_agg(
|
||||
COALESCE(
|
||||
upper(tbl_studiengang.typ::varchar(1) ||tbl_studiengang.kurzbz) ||
|
||||
'-'||
|
||||
COALESCE(tbl_lehreinheitgruppe.semester::varchar, '') ||
|
||||
COALESCE(tbl_lehreinheitgruppe.verband::varchar, '')||
|
||||
COALESCE(tbl_lehreinheitgruppe.gruppe, '')), ', '
|
||||
)
|
||||
) AS gruppen,
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
GROUP BY lehreinheit_id
|
||||
),
|
||||
lektoren AS (
|
||||
SELECT string_agg(kurzbz, ' ') as lektoren,
|
||||
string_agg(semesterstunden::text, ' ') as semesterstunden,
|
||||
string_agg(planstunden::text, ' ') as planstunden,
|
||||
lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
|
||||
GROUP BY lehreinheit_id
|
||||
),
|
||||
fachbereich AS (
|
||||
SELECT
|
||||
string_agg(CONCAT(tbl_organisationseinheit.bezeichnung, ' (', tbl_organisationseinheit.organisationseinheittyp_kurzbz, ')'),' ') as fachbereich,
|
||||
lehreinheit_id
|
||||
FROM
|
||||
public.tbl_organisationseinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
|
||||
AND lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
|
||||
GROUP BY lehreinheit_id
|
||||
)
|
||||
SELECT tbl_lehreinheit.*,
|
||||
tbl_lehrveranstaltung.*,
|
||||
tbl_lehrveranstaltung.kurzbz as lv_kurzbz,
|
||||
tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung,
|
||||
lektoren.lektoren,
|
||||
lektoren.semesterstunden,
|
||||
lektoren.planstunden,
|
||||
fachbereich.fachbereich
|
||||
FROM lehre.tbl_lehreinheit
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung ON tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
|
||||
LEFT JOIN gruppen ON tbl_lehreinheit.lehreinheit_id = gruppen.lehreinheit_id
|
||||
LEFT JOIN lektoren ON tbl_lehreinheit.lehreinheit_id = lektoren.lehreinheit_id
|
||||
LEFT JOIN fachbereich ON tbl_lehreinheit.lehreinheit_id = fachbereich.lehreinheit_id
|
||||
WHERE tbl_lehreinheit.lehrveranstaltung_id = ?
|
||||
AND studiensemester_kurzbz = ?
|
||||
";
|
||||
|
||||
$params = array($lv_id, $studiensemester_kurzbz);
|
||||
if ($mitarbeiter_uid !== null)
|
||||
{
|
||||
$qry .= " AND tbl_lehreinheit.lehreinheit_id IN ( SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE mitarbeiter_uid = ?) ";
|
||||
$params[] = $mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($fachbereich_kurzbz !== null)
|
||||
{
|
||||
$qry .= " AND EXISTS ( SELECT 1 FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_fachbereich USING(oe_kurzbz) WHERE fachbereich_kurzbz= ? AND lehrveranstaltung_id=tbl_lehreinheit.lehrfach_id)";
|
||||
$params[] = $fachbereich_kurzbz;
|
||||
}
|
||||
$qry .= " ORDER BY lehreinheit_id;";
|
||||
|
||||
return $this->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
|
||||
public function deleteLehreinheit($lehreinheit_id)
|
||||
{
|
||||
$lehreinheit = $this->loadWhere(array('lehreinheit_id' => $lehreinheit_id));
|
||||
@@ -741,4 +624,85 @@ EOSQL;
|
||||
$this->db->trans_commit();
|
||||
return success('Contract successfully updated.');
|
||||
}
|
||||
|
||||
private function _getGruppenCTE()
|
||||
{
|
||||
return "gruppen AS (
|
||||
SELECT
|
||||
lehreinheit_id,
|
||||
STRING_AGG(
|
||||
CASE
|
||||
WHEN (tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL OR tbl_lehreinheitgruppe.gruppe_kurzbz = '')
|
||||
THEN
|
||||
UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) ||
|
||||
COALESCE(TRIM(tbl_lehreinheitgruppe.semester::text), '') ||
|
||||
COALESCE(TRIM(tbl_lehreinheitgruppe.verband), '') ||
|
||||
COALESCE(TRIM(tbl_lehreinheitgruppe.gruppe), '')
|
||||
ELSE
|
||||
CASE
|
||||
WHEN NOT tbl_gruppe.direktinskription THEN tbl_lehreinheitgruppe.gruppe_kurzbz
|
||||
ELSE NULL
|
||||
END
|
||||
END,
|
||||
' '
|
||||
) AS gruppen
|
||||
FROM lehre.tbl_lehreinheitgruppe
|
||||
LEFT JOIN public.tbl_studiengang USING (studiengang_kz)
|
||||
LEFT JOIN public.tbl_gruppe USING (gruppe_kurzbz)
|
||||
JOIN lehreinheiten USING(lehreinheit_id)
|
||||
GROUP BY lehreinheit_id
|
||||
)";
|
||||
}
|
||||
private function _getLektorenCTE()
|
||||
{
|
||||
return "mitarbeiter AS (
|
||||
SELECT
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id,
|
||||
STRING_AGG(m.kurzbz, ' ') AS lektoren,
|
||||
STRING_AGG(tbl_lehreinheitmitarbeiter.semesterstunden::text, ' ') AS semesterstunden,
|
||||
STRING_AGG(tbl_lehreinheitmitarbeiter.planstunden::text, ' ') AS le_planstunden
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN public.tbl_mitarbeiter m USING (mitarbeiter_uid)
|
||||
JOIN lehreinheiten USING(lehreinheit_id)
|
||||
GROUP BY tbl_lehreinheitmitarbeiter.lehreinheit_id
|
||||
)";
|
||||
}
|
||||
|
||||
private function _getFachbereichCTE()
|
||||
{
|
||||
return "fachbereich AS (
|
||||
SELECT
|
||||
CONCAT(tbl_organisationseinheit.bezeichnung, ' (', tbl_organisationseinheit.organisationseinheittyp_kurzbz, ')') as bezeichnung,
|
||||
lehreinheiten.lehreinheit_id
|
||||
FROM public.tbl_organisationseinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung AS lehrfach ON tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
|
||||
JOIN lehre.tbl_lehreinheit ON lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
|
||||
JOIN lehreinheiten ON tbl_lehreinheit.lehreinheit_id = lehreinheiten.lehreinheit_id
|
||||
)";
|
||||
}
|
||||
|
||||
private function _getTagsCTE()
|
||||
{
|
||||
return "tag_data_agg AS (
|
||||
SELECT
|
||||
lehreinheit_id,
|
||||
COALESCE(json_agg(tag ORDER BY id), '[]'::json) AS tags
|
||||
FROM (
|
||||
SELECT DISTINCT ON (public.tbl_notiz.notiz_id)
|
||||
tbl_notiz.notiz_id AS id,
|
||||
typ_kurzbz,
|
||||
array_to_json(tbl_notiz_typ.bezeichnung_mehrsprachig)->>0 AS beschreibung,
|
||||
text AS notiz,
|
||||
style,
|
||||
erledigt AS done,
|
||||
lehreinheit_id
|
||||
FROM public.tbl_notizzuordnung
|
||||
JOIN public.tbl_notiz ON tbl_notizzuordnung.notiz_id = tbl_notiz.notiz_id
|
||||
JOIN public.tbl_notiz_typ ON tbl_notiz.typ = tbl_notiz_typ.typ_kurzbz
|
||||
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehreinheiten)
|
||||
) AS tag
|
||||
GROUP BY lehreinheit_id
|
||||
)";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ class Lehreinheitgruppe_model extends DB_Model
|
||||
}
|
||||
else if ($verband === true)
|
||||
{
|
||||
$gruppen_result = $this->_ci->LehrverbandModel->loadWhere(array('gid' => $gid));
|
||||
$gruppen_result = $this->LehrverbandModel->loadWhere(array('gid' => $gid));
|
||||
|
||||
if (!hasData($gruppen_result))
|
||||
return error('No group found for gid ' . $gid);
|
||||
@@ -470,6 +470,6 @@ class Lehreinheitgruppe_model extends DB_Model
|
||||
END AS verplant");
|
||||
$this->addJoin('tbl_studiengang', 'studiengang_kz', 'LEFT');
|
||||
$this->addJoin('public.tbl_gruppe', 'gruppe_kurzbz', 'LEFT');
|
||||
return $this->loadWhere(array('lehreinheit_id' => $lehreinheit_id, 'tbl_gruppe.direktinskription' => false));
|
||||
return $this->loadWhere(array('lehreinheit_id' => $lehreinheit_id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1122,9 +1122,9 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
|
||||
$qry .= "
|
||||
SELECT DISTINCT on(lehrveranstaltung_id) lehrveranstaltung_id,
|
||||
kurzbz as lv_kurzbz,
|
||||
bezeichnung as lv_bezeichnung,
|
||||
bezeichnung_english as lv_bezeichnung_english,
|
||||
tbl_lehrveranstaltung.kurzbz as lv_kurzbz,
|
||||
tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung,
|
||||
tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,
|
||||
studiengang_kz,
|
||||
semester,
|
||||
tbl_lehrveranstaltung.sprache,
|
||||
@@ -1133,7 +1133,7 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
tbl_lehrveranstaltung.anmerkung,
|
||||
tbl_lehrveranstaltung.lehre,
|
||||
lehreverzeichnis as lv_lehreverzeichnis,
|
||||
aktiv,
|
||||
tbl_lehrveranstaltung.aktiv,
|
||||
planfaktor as lv_planfaktor,
|
||||
planlektoren as lv_planlektoren,
|
||||
planpersonalkosten as lv_planpersonalkosten,
|
||||
@@ -1143,9 +1143,11 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
''::text as studienplan_id,
|
||||
'' as studienplan_bezeichnung,
|
||||
'' as studienplan_lehrveranstaltung_id_parent,
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz,
|
||||
UPPER(CONCAT(tbl_studiengang.typ,tbl_studiengang.kurzbz)) as studiengang
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE studiengang_kz = ?
|
||||
AND studiensemester_kurzbz = ?
|
||||
";
|
||||
@@ -1178,17 +1180,18 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
{
|
||||
return "
|
||||
SELECT
|
||||
lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
|
||||
lehrveranstaltung_id, tbl_lehrveranstaltung.kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
|
||||
tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache,
|
||||
ects as lv_ects, semesterstunden, anmerkung, lehre, lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.aktiv,
|
||||
planfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten,
|
||||
plankostenprolektor as lv_plankostenprolektor, lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz,
|
||||
tbl_studienplan_lehrveranstaltung.studienplan_id::text as studienplan_id, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent::text,
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz, UPPER(CONCAT(tbl_studiengang.typ,tbl_studiengang.kurzbz)) as studiengang
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.aktiv AND ((studienplan_id, tbl_studienplan_lehrveranstaltung.semester) IN ( " . implode(',', $placeholders) . "))
|
||||
UNION
|
||||
|
||||
@@ -14,14 +14,17 @@ textarea[name="anmerkung"] {
|
||||
.lv_table_icon.icon-modul::before
|
||||
{
|
||||
content: '\f468';
|
||||
color: #4e4ed2;
|
||||
}
|
||||
|
||||
.lv_table_icon.icon-lv::before
|
||||
{
|
||||
content: '\f466';
|
||||
color: black;
|
||||
}
|
||||
|
||||
.lv_table_icon.icon-::before
|
||||
{
|
||||
content: '\f073';
|
||||
}
|
||||
color: #f3c541;
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ export default {
|
||||
: this.$route.params.stg;
|
||||
}
|
||||
|
||||
this.$p.loadCategory(['lehre', 'person'])
|
||||
this.$p.loadCategory(['lehre', 'person', 'global'])
|
||||
|
||||
this.$api.call(ApiDetails.getStudiensemester())
|
||||
.then(result => {
|
||||
|
||||
@@ -100,7 +100,6 @@ export default {
|
||||
expanded: [],
|
||||
selectedColumnValues: [],
|
||||
tagEndpoint: ApiTag,
|
||||
iconPath: FHC_JS_DATA_STORAGE_OBJECT.app_root + '/skin/images/lehrtyp_',
|
||||
tabulatorEvents: [
|
||||
{
|
||||
event: 'rowSelectionChanged',
|
||||
@@ -119,7 +118,8 @@ export default {
|
||||
handler: (data) => {
|
||||
this.getExpandedRows()
|
||||
}
|
||||
},{
|
||||
},
|
||||
{
|
||||
event: 'dataTreeRowCollapsed',
|
||||
handler: (data) => {
|
||||
this.getExpandedRows()
|
||||
@@ -157,19 +157,18 @@ export default {
|
||||
initialSort:[
|
||||
{column: 'lv_bezeichnung', dir: 'desc'},
|
||||
],
|
||||
dataTreeChildIndent: 20,
|
||||
dataTreeElementColumn: "lv_kurzbz",
|
||||
dataTreeFilter: true,
|
||||
dataTreeStartExpanded: false,
|
||||
dataTreeCollapseElement: '<i class="fa-solid fa-caret-down"></i>',
|
||||
dataTreeExpandElement: '<i class="fa-solid fa-caret-right"></i>',
|
||||
columnDefaults: {
|
||||
tooltip: true,
|
||||
headerFilter: "input",
|
||||
headerFilterFunc: extendedHeaderFilter
|
||||
headerFilterFunc: extendedHeaderFilter,
|
||||
},
|
||||
layout: 'fitDataStretch',
|
||||
layoutColumnsOnNewData: false,
|
||||
height: '100%',
|
||||
persistenceID: 'lehrveranstaltungen_2025_07_07_v1',
|
||||
selectableRowsRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
rowContextMenu: (component, e) => {
|
||||
@@ -217,7 +216,6 @@ export default {
|
||||
];
|
||||
},
|
||||
|
||||
persistenceID: 'lehrveranstaltungen_2025_05_27_v1',
|
||||
columns: [
|
||||
{
|
||||
title: this.$p.t('lehre', 'kurzbz'),
|
||||
@@ -302,45 +300,55 @@ export default {
|
||||
},
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: this.$p.t('lehre', 'kurzbz'),
|
||||
field: "lv_kurzbz_anzeige",
|
||||
headerFilterFuncParams: {field: 'lv_kurzbz_anzeige'},
|
||||
formatter: (cell, formatterParams) => {
|
||||
let rowData = cell.getRow().getData();
|
||||
return rowData?.lv_kurzbz?.toUpperCase();
|
||||
},
|
||||
headerFilter: true
|
||||
},
|
||||
{
|
||||
title: this.$p.t('lehre', 'lehrveranstaltung_id'),
|
||||
field: "lehrveranstaltung_id",
|
||||
headerFilterFuncParams: {field: 'lehrveranstaltung_id'},
|
||||
headerFilter: true
|
||||
headerFilter: true,
|
||||
visible: false
|
||||
},
|
||||
{title: this.$p.t('ui', 'bezeichnung'), field: "lv_bezeichnung", headerFilter: true, headerFilterFuncParams: {field: 'lv_bezeichnung'}},
|
||||
{title: this.$p.t('lehre', 'bezeichnungeng'), field: "lv_bezeichnung_english", headerFilter: true, headerFilterFuncParams: {field: 'lv_bezeichnung_english'}},
|
||||
{title: this.$p.t('lehre', 'bezeichnungeng'), field: "lv_bezeichnung_english", headerFilter: true, headerFilterFuncParams: {field: 'lv_bezeichnung_english'}, visible: false},
|
||||
{
|
||||
title: this.$p.t('lehre', 'studiengangskennzahlLehre'),
|
||||
field: "lv_studiengang_kz",
|
||||
headerFilter: true,
|
||||
headerFilterFuncParams: {field: 'lv_studiengang_kz'}
|
||||
headerFilterFuncParams: {field: 'lv_studiengang_kz'},
|
||||
visible: false
|
||||
},
|
||||
{title: this.$p.t('lehre', 'studiengang'), field: "studiengang", headerFilter: true, headerFilterFuncParams: {field: 'studiengang'}},
|
||||
{title: this.$p.t('lehre', 'studiengang'), field: "studiengang", headerFilter: true, headerFilterFuncParams: {field: 'studiengang'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'semester'), field: "semester", headerFilter: true, headerFilterFuncParams: {field: 'semester'}},
|
||||
{title: this.$p.t('global', 'sprache'), field: "sprache", headerFilter: true, headerFilterFuncParams: {field: 'sprache'}},
|
||||
{title: this.$p.t('lehre', 'ects'), field: "lv_ects", headerFilter: true, headerFilterFuncParams: {field: 'lv_ects'}},
|
||||
{title: this.$p.t('lehre', 'semesterstunden'), field: "semesterstunden", headerFilter: true, headerFilterFuncParams: {field: 'semesterstunden'}},
|
||||
{title: this.$p.t('global', 'anmerkung'), field: "anmerkung", headerFilter: true, headerFilterFuncParams: {field: 'anmerkung'}},
|
||||
{title: this.$p.t('lehre', 'lehre'), field: "lehre", headerFilter: true, headerFilterFuncParams: {field: 'lehre'}},
|
||||
{title: "Lehreverzeichnis", field: "lehreverzeichnis", headerFilter: true, headerFilterFuncParams: {field: 'lehreverzeichnis'}},
|
||||
{title: this.$p.t('person', 'aktiv'), field: "aktiv", headerFilter: true, headerFilterFuncParams: {field: 'aktiv'}},
|
||||
{title: "Planfaktor", field: "planfaktor", headerFilter: true, headerFilterFuncParams: {field: 'planfaktor'}},
|
||||
{title: "Planlektoren", field: "planlektoren", headerFilter: true, headerFilterFuncParams: {field: 'planlektoren'}},
|
||||
{title: "planpersonalkosten", field: "planpersonalkosten", headerFilter: true, headerFilterFuncParams: {field: 'planpersonalkosten'}},
|
||||
{title: "plankostenprolektor", field: "plankostenprolektor", headerFilter: true, headerFilterFuncParams: {field: 'plankostenprolektor'}},
|
||||
{title: this.$p.t('ui', 'organisationsform'), field: "orgform_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'orgform_kurzbz'}},
|
||||
{title: this.$p.t('ui', 'studienplan_id'), field: "studienplan_id", headerFilter: true, headerFilterFuncParams: {field: 'studienplan_id'}},
|
||||
{title: "studienplan_bezeichnung", field: "studienplan_bezeichnung", headerFilter: true, headerFilterFuncParams: {field: 'studienplan_bezeichnung'}},
|
||||
{title: "lehrtyp_kurzbz", field: "lehrtyp_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'lehrtyp_kurzbz'}},
|
||||
{title: this.$p.t('global', 'sprache'), field: "sprache", headerFilter: true, headerFilterFuncParams: {field: 'sprache'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'ects'), field: "lv_ects", headerFilter: true, headerFilterFuncParams: {field: 'lv_ects'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'semesterstunden'), field: "semesterstunden", headerFilter: true, headerFilterFuncParams: {field: 'semesterstunden'}, visible: false},
|
||||
{title: this.$p.t('global', 'anmerkung'), field: "anmerkung", headerFilter: true, headerFilterFuncParams: {field: 'anmerkung'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'lehre'), field: "lehre", headerFilter: true, headerFilterFuncParams: {field: 'lehre'}, formatter: (cell) => cell.getValue() ? this.toUpperCase(this.$p.t('ui', 'ja')) : this.toUpperCase(this.$p.t('ui', 'nein')), visible: false},
|
||||
{title: this.$p.t('person', 'aktiv'), field: "aktiv", headerFilter: true, headerFilterFuncParams: {field: 'aktiv'}, formatter: (cell) => cell.getValue() ? this.toUpperCase(this.$p.t('ui', 'ja')) : this.toUpperCase(this.$p.t('ui', 'nein')), visible: false},
|
||||
{title: this.$p.t('lehre', 'organisationsform'), field: "orgform_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'orgform_kurzbz'}},
|
||||
{title: this.$p.t('ui', 'studienplan_id'), field: "studienplan_id", headerFilter: true, headerFilterFuncParams: {field: 'studienplan_id'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'studienplan'), field: "studienplan_bezeichnung", headerFilter: true, headerFilterFuncParams: {field: 'studienplan_bezeichnung'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'lehrtyp'), field: "lehrtyp_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'lehrtyp_kurzbz'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'lehrform'), field: "lehrform_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'lehrform_kurzbz'}},
|
||||
{title: this.$p.t('lehre', 'leplanstunden'), field: "le_planstunden", headerFilter: true, headerFilterFuncParams: {field: 'le_planstunden'}},
|
||||
{title: this.$p.t('lehre', 'lehreinheit_id'), field: "lehreinheit_id", headerFilter: true, headerFilterFuncParams: {field: 'lehreinheit_id'}},
|
||||
{title: this.$p.t('lehre', 'stundenblockung'), field: "stundenblockung", headerFilter: true, headerFilterFuncParams: {field: 'stundenblockung'}},
|
||||
{title: this.$p.t('lehre', 'wochenrhytmus'), field: "wochenrythmus", headerFilter: true, headerFilterFuncParams: {field: 'wochenrythmus'}},
|
||||
{title: this.$p.t('lehre', 'startkw'), field: "startkw", headerFilter: true, headerFilterFuncParams: {field: 'startkw'}},
|
||||
{title: this.$p.t('lehre', 'raumtyp'), field: "raumtyp", headerFilter: true, headerFilterFuncParams: {field: 'raumtyp'}},
|
||||
{title: this.$p.t('lehre', 'raumtypalternativ'), field: "raumtypalternativ", headerFilter: true, headerFilterFuncParams: {field: 'raumtypalternativ'}},
|
||||
{title: this.$p.t('lehre', 'leplanstunden'), field: "le_planstunden", headerFilter: true, headerFilterFuncParams: {field: 'le_planstunden'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'lehreinheit_id'), field: "lehreinheit_id", headerFilter: true, headerFilterFuncParams: {field: 'lehreinheit_id'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'studiensemester'), field: "studiensemester_kurzbz", headerFilter: true, headerFilterFuncParams: {field: 'studiensemester_kurzbz'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'unr'), field: "unr", headerFilter: true, headerFilterFuncParams: {field: 'unr'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'fachbereich'), field: "fachbereich", headerFilter: true, headerFilterFuncParams: {field: 'fachbereich'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'stundenblockung'), field: "stundenblockung", headerFilter: true, headerFilterFuncParams: {field: 'stundenblockung'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'wochenrhythmus'), field: "wochenrythmus", headerFilter: true, headerFilterFuncParams: {field: 'wochenrythmus'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'startkw'), field: "start_kw", headerFilter: true, headerFilterFuncParams: {field: 'startkw'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'raumtyp'), field: "raumtyp", headerFilter: true, headerFilterFuncParams: {field: 'raumtyp'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'raumtypalternativ'), field: "raumtypalternativ", headerFilter: true, headerFilterFuncParams: {field: 'raumtypalternativ'}, visible: false},
|
||||
{title: this.$p.t('lehre', 'gruppen'), field: "gruppen", headerFilter: true, headerFilterFuncParams: {field: 'gruppen'}},
|
||||
{title: this.$p.t('lehre', 'lehrende'), field: "lektoren", headerFilter: true, headerFilterFuncParams: {field: 'lektoren'}},
|
||||
],
|
||||
@@ -359,6 +367,11 @@ export default {
|
||||
shouldAutoLoad() {
|
||||
return this.filter && this.filter.activeFilter;
|
||||
},
|
||||
toUpperCase(str) {
|
||||
if (!str)
|
||||
return '';
|
||||
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
|
||||
},
|
||||
async reload()
|
||||
{
|
||||
|
||||
@@ -369,7 +382,7 @@ export default {
|
||||
},
|
||||
rowSelectionChanged(data) {
|
||||
this.selectedRows = this.$refs.table.tabulator.getSelectedRows();
|
||||
this.selectedColumnValues = this.selectedRows.filter(row => row.getData().lehreinheit_id !== undefined).map(row => row.getData().lehreinheit_id);
|
||||
this.selectedColumnValues = this.selectedRows.filter(row => row.getData().lehreinheit_id !== undefined && row.getData().lehreinheit_id).map(row => row.getData().lehreinheit_id);
|
||||
|
||||
if (data[0]?.lehreinheit_id !== undefined && this.selectedColumnValues.length === 1)
|
||||
{
|
||||
@@ -471,9 +484,7 @@ export default {
|
||||
if (Array.isArray(addedTag.response))
|
||||
{
|
||||
addedTag.response.forEach(tag => {
|
||||
|
||||
const all = this.getAllRows(table.getRows());
|
||||
const targetRow = all.find(row => row.getData().lehreinheit_id === tag.lehreinheit_id);
|
||||
const targetRow = this.allRows.find(row => row.getData().lehreinheit_id === tag.lehreinheit_id);
|
||||
if (targetRow)
|
||||
{
|
||||
const rowData = targetRow.getData();
|
||||
@@ -496,10 +507,7 @@ export default {
|
||||
});
|
||||
},
|
||||
deletedTag(deletedTag) {
|
||||
const table = this.$refs.table.tabulator;
|
||||
const all = this.getAllRows(table.getRows());
|
||||
|
||||
const targetRow = all.find(row => {
|
||||
const targetRow = this.allRows.find(row => {
|
||||
const rowData = row.getData();
|
||||
|
||||
let tags = [];
|
||||
@@ -532,10 +540,7 @@ export default {
|
||||
},
|
||||
|
||||
updatedTag(updatedTag) {
|
||||
const table = this.$refs.table.tabulator;
|
||||
const all = this.getAllRows(table.getRows());
|
||||
|
||||
const targetRow = all.find(row => {
|
||||
const targetRow = this.allRows.find(row => {
|
||||
const rowData = row.getData();
|
||||
let tags = [];
|
||||
|
||||
@@ -587,9 +592,8 @@ export default {
|
||||
|
||||
async getExpandedRows() {
|
||||
this.expanded = [];
|
||||
let rows = this.$refs.table.tabulator.getRows();
|
||||
let allRows = this.getAllRows(rows);
|
||||
allRows.forEach(row => {
|
||||
|
||||
this.allRows.forEach(row => {
|
||||
if (row.getTreeChildren().length > 0 && row.isTreeExpanded())
|
||||
{
|
||||
this.expanded.push(row.getData().uniqueindex);
|
||||
@@ -597,9 +601,9 @@ export default {
|
||||
});
|
||||
},
|
||||
reexpandRows() {
|
||||
const all = this.getAllRows(this.$refs.table.tabulator.getRows());
|
||||
this.allRows = this.getAllRows(this.$refs.table.tabulator.getRows());
|
||||
|
||||
const matchingRows = all.filter(row =>
|
||||
const matchingRows = this.allRows.filter(row =>
|
||||
this.expanded.includes(row.getData().uniqueindex)
|
||||
);
|
||||
|
||||
@@ -637,6 +641,39 @@ export default {
|
||||
});
|
||||
return result;
|
||||
},
|
||||
resetTree() {
|
||||
this.allRows.forEach(row => {
|
||||
row._row.modules.dataTree.open = false;
|
||||
});
|
||||
|
||||
let rootRows = this.$refs.table.tabulator.getRows(true);
|
||||
var lastRow = rootRows[rootRows.length - 1];
|
||||
lastRow.treeCollapse(true)
|
||||
|
||||
this.currentTreeLevel = 0;
|
||||
},
|
||||
expandTree()
|
||||
{
|
||||
this.currentTreeLevel = (this.currentTreeLevel || 0) + 1;
|
||||
|
||||
let lastMatchingRow = null;
|
||||
|
||||
this.allRows.forEach(row => {
|
||||
const level = row._row.modules.dataTree?.index ?? 0;
|
||||
|
||||
if (level === this.currentTreeLevel - 1 )
|
||||
{
|
||||
row._row.modules.dataTree.open = true;
|
||||
lastMatchingRow = row;
|
||||
}
|
||||
});
|
||||
|
||||
if (lastMatchingRow)
|
||||
{
|
||||
lastMatchingRow.treeExpand();
|
||||
}
|
||||
this.$refs.table.tabulator.redraw();
|
||||
},
|
||||
},
|
||||
template: `
|
||||
<core-filter-cmpt
|
||||
@@ -660,6 +697,8 @@ export default {
|
||||
@updated="updatedTag"
|
||||
zuordnung_typ="lehreinheit_id"
|
||||
></core-tag>
|
||||
<button @click="expandTree" class="btn btn-outline-secondary" type="button"><i class="fa-solid fa-maximize"></i></button>
|
||||
<button @click="resetTree" class="btn btn-outline-secondary" type="button"><i id="togglegroup" class="fa-solid fa-minimize"></i></button>
|
||||
</template>
|
||||
<template #search>
|
||||
<slot name="filterzuruecksetzen"></slot>
|
||||
|
||||
@@ -19,7 +19,7 @@ export default {
|
||||
class="overflow-hidden"
|
||||
:endpoint="endpoint"
|
||||
ref="formc"
|
||||
notiz-layout="twoColumnsFormLeft"
|
||||
notiz-layout="popupModal"
|
||||
type-id="lehreinheit_id"
|
||||
:id="modelValue.lehreinheit_id"
|
||||
show-document
|
||||
|
||||
@@ -39744,6 +39744,48 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'fachbereich',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Institut',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Institute',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'lehre',
|
||||
'phrase' => 'lehrtyp',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Lehrtyp',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Teaching type',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
|
||||
// ### STUDIENGANG_INFORMATIONEN PHRASEN START
|
||||
array(
|
||||
'app' => 'core',
|
||||
|
||||
Reference in New Issue
Block a user