Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred
2022-06-24 14:29:35 +02:00
8 changed files with 345 additions and 12 deletions
@@ -309,4 +309,50 @@ class Lehrveranstaltung_model extends DB_Model
return $this->execQuery($query, array($uid, $studiensemester_kurzbz, $lehrveranstaltung_id)); return $this->execQuery($query, array($uid, $studiensemester_kurzbz, $lehrveranstaltung_id));
} }
/**
* Sucht nach LV Templates und gibt Id und Label ("bezeichnung [kurzbz]") aus
* Diese funktion ist für autocomplete gedacht
*
* @param string $filter Suchfilter
* @return \stdClass A return object
*/
public function loadTemplates($filter)
{
$filter = strtolower($filter);
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
)
";
return $this->execQuery($qry);
}
/**
* Lädt Template und gibt Id und Label ("bezeichnung [kurzbz]") zurück
* Diese funktion ist für autocomplete gedacht
*
* @param string $name
* @return \stdClass A return object
*/
public function loadTemplateByName($name)
{
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) = '".($name ? $this->db_escape($name) : 0)."' OR tbl_lehrveranstaltung.bezeichnung = '".$this->db_escape($name). "' OR tbl_lehrveranstaltung.kurzbz = '".$this->db_escape($name). "'
)
";
return $this->execQuery($qry);
}
} }
@@ -199,14 +199,15 @@ $query = '
LIMIT 1 LIMIT 1
) AS "ReihungstestApplied", ) AS "ReihungstestApplied",
( (
SELECT rtp.datum SELECT CONCAT(rtp.datum, rtp.uhrzeit)
FROM public.tbl_prestudentstatus pss FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN public.tbl_prestudent ps USING(prestudent_id)
LEFT JOIN ( LEFT JOIN (
SELECT rtp.person_id, SELECT rtp.person_id,
rt.studiensemester_kurzbz, rt.studiensemester_kurzbz,
rtp.teilgenommen, rtp.teilgenommen,
rt.datum rt.datum,
rt.uhrzeit
FROM public.tbl_rt_person rtp FROM public.tbl_rt_person rtp
JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id) JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id)
WHERE rt.stufe = 1 WHERE rt.stufe = 1
@@ -409,13 +410,13 @@ $query = '
$datasetRaw->{'ReihungstestApplied'} = 'Nein'; $datasetRaw->{'ReihungstestApplied'} = 'Nein';
} }
if ($datasetRaw->{'ReihungstestDate'} == null) if ($datasetRaw->{'ReihungstestDate'} == '')
{ {
$datasetRaw->{'ReihungstestDate'} = '-'; $datasetRaw->{'ReihungstestDate'} = '-';
} }
else else
{ {
$datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d'); $datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d H:i');
} }
if ($datasetRaw->{'ZGVNation'} == null) if ($datasetRaw->{'ZGVNation'} == null)
+115 -4
View File
@@ -69,6 +69,7 @@ class lehrveranstaltung extends basis_db
public $semester_alternativ; // smallint public $semester_alternativ; // smallint
public $farbe; public $farbe;
public $lehrauftrag=true; public $lehrauftrag=true;
public $lehrveranstaltung_template_id; // integer
public $studienplan_lehrveranstaltung_id; public $studienplan_lehrveranstaltung_id;
@@ -158,6 +159,7 @@ class lehrveranstaltung extends basis_db
$this->lvnr = $row->lvnr; $this->lvnr = $row->lvnr;
$this->semester_alternativ = $row->semester_alternativ; $this->semester_alternativ = $row->semester_alternativ;
$this->farbe = $row->farbe; $this->farbe = $row->farbe;
$this->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$this->sws = $row->sws; $this->sws = $row->sws;
$this->lvs = $row->lvs; $this->lvs = $row->lvs;
@@ -237,6 +239,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
@@ -387,6 +390,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -516,6 +520,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -598,6 +603,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -729,6 +735,25 @@ class lehrveranstaltung extends basis_db
$this->errormsg = 'Semesterwochen muss ein eine gueltige ganze Zahl sein'; $this->errormsg = 'Semesterwochen muss ein eine gueltige ganze Zahl sein';
return false; return false;
} }
if ($this->lehrveranstaltung_template_id != '')
{
if (!isint($this->lehrveranstaltung_template_id)) {
$this->errormsg = 'Lehrveranstaltung Template Id muss eine gültige ganze Zahl sein';
return false;
} elseif($this->lehrtyp_kurzbz == 'tpl') {
$this->errormsg = 'Lehrveranstaltung Template Id darf bei Lehrveranstaltungen des Typs "Template" nicht gesetzt werden';
return false;
} else {
$template = new lehrveranstaltung($this->lehrveranstaltung_template_id);
if ($template->errormsg) {
$this->errormsg = 'Lehrveranstaltung Template: ' . $template->errormsg;
return false;
} elseif ($template->lehrtyp_kurzbz != 'tpl') {
$this->errormsg = 'Lehrveranstaltung Template: Als Lehrtyp muss Template ausgewählt sein';
return false;
}
}
}
$this->errormsg = ''; $this->errormsg = '';
return true; return true;
} }
@@ -753,7 +778,7 @@ class lehrveranstaltung extends basis_db
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum, semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort, insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz, zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo, raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe, lehrveranstaltung_template_id,sws,lvs,alvs,lvps,las,benotung,lvinfo,
lehrauftrag, lehrmodus_kurzbz) VALUES ('. lehrauftrag, lehrmodus_kurzbz) VALUES ('.
$this->db_add_param($this->studiengang_kz). ', '. $this->db_add_param($this->studiengang_kz). ', '.
$this->db_add_param($this->bezeichnung). ', '. $this->db_add_param($this->bezeichnung). ', '.
@@ -790,6 +815,7 @@ class lehrveranstaltung extends basis_db
$this->db_add_param($this->lvnr).','. $this->db_add_param($this->lvnr).','.
$this->db_add_param($this->semester_alternativ).','. $this->db_add_param($this->semester_alternativ).','.
$this->db_add_param($this->farbe).','. $this->db_add_param($this->farbe).','.
$this->db_add_param($this->lehrveranstaltung_template_id, FHC_INTEGER).','.
$this->db_add_param($this->sws).','. $this->db_add_param($this->sws).','.
$this->db_add_param($this->lvs).','. $this->db_add_param($this->lvs).','.
$this->db_add_param($this->alvs).','. $this->db_add_param($this->alvs).','.
@@ -846,6 +872,7 @@ class lehrveranstaltung extends basis_db
'lvnr = ' . $this->db_add_param($this->lvnr) . ', ' . 'lvnr = ' . $this->db_add_param($this->lvnr) . ', ' .
'semester_alternativ = '.$this->db_add_param($this->semester_alternativ).', '. 'semester_alternativ = '.$this->db_add_param($this->semester_alternativ).', '.
'farbe = '.$this->db_add_param($this->farbe).', '. 'farbe = '.$this->db_add_param($this->farbe).', '.
'lehrveranstaltung_template_id = '.$this->db_add_param($this->lehrveranstaltung_template_id, FHC_INTEGER).', '.
'sws = '.$this->db_add_param($this->sws).', '. 'sws = '.$this->db_add_param($this->sws).', '.
'lvs = '.$this->db_add_param($this->lvs).', '. 'lvs = '.$this->db_add_param($this->lvs).', '.
'alvs = '.$this->db_add_param($this->alvs).', '. 'alvs = '.$this->db_add_param($this->alvs).', '.
@@ -960,6 +987,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -1054,6 +1082,7 @@ class lehrveranstaltung extends basis_db
$l->lvnr = $row->lvnr; $l->lvnr = $row->lvnr;
$l->semester_alternativ = $row->semester_alternativ; $l->semester_alternativ = $row->semester_alternativ;
$l->farbe = $row->farbe; $l->farbe = $row->farbe;
$l->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$l->benotung = $this->db_parse_bool($row->benotung); $l->benotung = $this->db_parse_bool($row->benotung);
$l->lvinfo = $this->db_parse_bool($row->lvinfo); $l->lvinfo = $this->db_parse_bool($row->lvinfo);
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -1137,6 +1166,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -1236,6 +1266,7 @@ class lehrveranstaltung extends basis_db
$obj->lvnr = $row->lvnr; $obj->lvnr = $row->lvnr;
$obj->semester_alternativ = $row->semester_alternativ; $obj->semester_alternativ = $row->semester_alternativ;
$obj->farbe = $row->farbe; $obj->farbe = $row->farbe;
$obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$obj->stpllv_sort = $row->stpllv_sort; $obj->stpllv_sort = $row->stpllv_sort;
$obj->benotung = $this->db_parse_bool($row->benotung); $obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo); $obj->lvinfo = $this->db_parse_bool($row->lvinfo);
@@ -1309,7 +1340,7 @@ class lehrveranstaltung extends basis_db
return $childs; return $childs;
} }
/** /**
* Generiert die Subtrees des Lehrveranstaltungstrees * Generiert die Subtrees des Lehrveranstaltungstrees
*/ */
public function hasChildren($studienplan_lehrveranstaltung_id) public function hasChildren($studienplan_lehrveranstaltung_id)
@@ -1360,6 +1391,7 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_koordinator = $lv->stpllv_koordinator; $obj->stpllv_koordinator = $lv->stpllv_koordinator;
$obj->oe_kurzbz = $lv->oe_kurzbz; $obj->oe_kurzbz = $lv->oe_kurzbz;
$obj->lvnr = $lv->lvnr; $obj->lvnr = $lv->lvnr;
$obj->lehrveranstaltung_template_id = $lv->lehrveranstaltung_template_id;
$obj->benotung = $this->db_parse_bool($lv->benotung); $obj->benotung = $this->db_parse_bool($lv->benotung);
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo); $obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis); $obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
@@ -1385,6 +1417,7 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_koordinator = $this->stpllv_koordinator; $obj->stpllv_koordinator = $this->stpllv_koordinator;
$obj->oe_kurzbz = $this->oe_kurzbz; $obj->oe_kurzbz = $this->oe_kurzbz;
$obj->lvnr = $this->lvnr; $obj->lvnr = $this->lvnr;
$obj->lehrveranstaltung_template_id = $this->lehrveranstaltung_template_id;
$obj->benotung = $this->db_parse_bool($this->benotung); $obj->benotung = $this->db_parse_bool($this->benotung);
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo); $obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis); $obj->zeugnis = $this->db_parse_bool($this->zeugnis);
@@ -1424,6 +1457,7 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_pflicht = $lv->stpllv_pflicht; $obj->stpllv_pflicht = $lv->stpllv_pflicht;
$obj->stpllv_koordinator = $lv->stpllv_koordinator; $obj->stpllv_koordinator = $lv->stpllv_koordinator;
$obj->lvnr = $lv->lvnr; $obj->lvnr = $lv->lvnr;
$obj->lehrveranstaltung_template_id = $lv->lehrveranstaltung_template_id;
$obj->stpllv_sort = $lv->stpllv_sort; $obj->stpllv_sort = $lv->stpllv_sort;
$obj->oe_kurzbz = $lv->oe_kurzbz; $obj->oe_kurzbz = $lv->oe_kurzbz;
$obj->sws = $lv->sws; $obj->sws = $lv->sws;
@@ -1467,6 +1501,7 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_pflicht = $this->stpllv_pflicht; $obj->stpllv_pflicht = $this->stpllv_pflicht;
$obj->stpllv_koordinator = $this->stpllv_koordinator; $obj->stpllv_koordinator = $this->stpllv_koordinator;
$obj->lvnr = $this->lvnr; $obj->lvnr = $this->lvnr;
$obj->lehrveranstaltung_template_id = $this->lehrveranstaltung_template_id;
$obj->benotung = $this->db_parse_bool($this->benotung); $obj->benotung = $this->db_parse_bool($this->benotung);
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo); $obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis); $obj->zeugnis = $this->db_parse_bool($this->zeugnis);
@@ -1574,6 +1609,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
$lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz; $lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -1660,6 +1696,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
$lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz; $lv_obj->lehrmodus_kurzbz = $row->lehrmodus_kurzbz;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -1750,7 +1787,7 @@ class lehrveranstaltung extends basis_db
* @param $aktiv optional, true wenn nur aktive LVs * @param $aktiv optional, true wenn nur aktive LVs
* @param $lehrtyp optional, gewünschter Lehrtyp * @param $lehrtyp optional, gewünschter Lehrtyp
*/ */
public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null) public function load_lva_oe($oe_kurzbz, $aktiv=null, $lehrtyp=null, $sort=null, $semester=null, $lehrmodus=null)
{ {
if (is_null($oe_kurzbz)) if (is_null($oe_kurzbz))
@@ -1831,6 +1868,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->oe_kurzbz = $row->oe_kurzbz; $lv_obj->oe_kurzbz = $row->oe_kurzbz;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
@@ -1961,6 +1999,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -2088,6 +2127,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr; $lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ; $lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe; $lv_obj->farbe = $row->farbe;
$lv_obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$lv_obj->benotung = $this->db_parse_bool($row->benotung); $lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo); $lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -2276,7 +2316,7 @@ class lehrveranstaltung extends basis_db
} }
/** /**
* Lädt alle Lehrveranstaltungen eine Studienplans * Lädt alle Lehrveranstaltungen eines Studienplans
* Optionale Filterung nach Lehrtyp und Semester * Optionale Filterung nach Lehrtyp und Semester
* @param type $studienplan_id * @param type $studienplan_id
* @param type $lehrtyp_kurzbz * @param type $lehrtyp_kurzbz
@@ -2358,6 +2398,7 @@ class lehrveranstaltung extends basis_db
$obj->lvnr = $row->lvnr; $obj->lvnr = $row->lvnr;
$obj->semester_alternativ = $row->semester_alternativ; $obj->semester_alternativ = $row->semester_alternativ;
$obj->farbe = $row->farbe; $obj->farbe = $row->farbe;
$obj->lehrveranstaltung_template_id = $row->lehrveranstaltung_template_id;
$obj->benotung = $this->db_parse_bool($row->benotung); $obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo); $obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag); $obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
@@ -2665,5 +2706,75 @@ class lehrveranstaltung extends basis_db
return false; return false;
} }
} }
/**
* Sucht nach LV Templates und gibt Id und Label ("bezeichnung [kurzbz]") aus
* Diese funktion ist für autocomplete gedacht
*
* @param string $filter Suchfilter
* @return array
*/
public function loadTemplates($filter)
{
$filter = strtolower($filter);
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
)
";
$lehrveranstaltungen = [];
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$lehrveranstaltungen[] = $row;
}
return $lehrveranstaltungen;
}
else
{
$this->errormsg='Fehler bei Datenbankabfrage';
return [];
}
}
/**
* Lädt Template und gibt Id und Label ("bezeichnung [kurzbz]") zurück
* Diese funktion ist für autocomplete gedacht
*
* @param string $name
* @return stdClass | null
*/
public function loadTemplateByName($name)
{
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) = '".($name ? $this->db_escape($name) : 0)."' OR tbl_lehrveranstaltung.bezeichnung = '".$this->db_escape($name). "' OR tbl_lehrveranstaltung.kurzbz = '".$this->db_escape($name). "'
)
";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
return $row;
}
}
else
{
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
}
return null;
}
} }
?> ?>
+21
View File
@@ -27,6 +27,8 @@
*/ */
require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/lehrveranstaltung.class.php');
require_once(dirname(__FILE__).'/studienordnung.class.php');
class studienplan extends basis_db class studienplan extends basis_db
{ {
@@ -526,6 +528,25 @@ class studienplan extends basis_db
public function saveStudienplanLehrveranstaltung() public function saveStudienplanLehrveranstaltung()
{ {
$lv = new lehrveranstaltung();
$lv->load($this->lehrveranstaltung_id);
if ($lv->lehrtyp_kurzbz == 'tpl') {
$lv->lehrtyp_kurzbz = 'lv';
$sp = new studienplan();
$sp->loadStudienplan($this->studienplan_id);
$so = new studienordnung();
$so->loadStudienordnung($sp->studienordnung_id);
$lv->studiengang_kz = $so->studiengang_kz;
$lv->semester = $this->semester;
$lv->lehrveranstaltung_template_id = $this->lehrveranstaltung_id;
if (!$lv->save(true)) {
$this->errormsg = "Fehler beim kopieren des Templates: " . $lv->errormsg;
return false;
}
$this->lehrveranstaltung_id = $lv->lehrveranstaltung_id;
}
if ($this->new) if ($this->new)
{ {
//Neuen Datensatz einfuegen //Neuen Datensatz einfuegen
+55 -1
View File
@@ -6176,6 +6176,60 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
} }
} }
// NOTE(chris): Add "Template" to "Lehrtyp"
if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrtyp WHERE bezeichnung = 'Template';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO lehre.tbl_lehrtyp(lehrtyp_kurzbz, bezeichnung) VALUES('tpl', 'Template');";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_lehrtyp '.$db->db_last_error().'</strong><br>';
else
echo '<br>lehre.tbl_lehrtyp: Added "Template"';
}
}
// NOTE(chris): Add Column "lehrveranstaltung_template_id" in tbl_lehrveranstaltung
if(!$result = @$db->db_query("SELECT lehrveranstaltung_template_id FROM lehre.tbl_lehrveranstaltung LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrveranstaltung_template_id integer;
ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_template FOREIGN KEY (lehrveranstaltung_template_id) REFERENCES lehre.tbl_lehrveranstaltung (lehrveranstaltung_id) ON DELETE RESTRICT ON UPDATE CASCADE;";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_lehrveranstaltung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>lehre.tbl_lehrveranstaltung: Spalte lehrveranstaltung_template_id hinzugefuegt';
}
// NOTE(chris): Add Webservice Rights for lehrveranstaltung::loadTemplates
if($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicerecht WHERE berechtigung_kurzbz='soap/studienordnung' AND methode = 'loadTemplates' AND klasse = 'lehrveranstaltung';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, insertamum, insertvon, klasse) VALUES('soap/studienordnung', 'loadTemplates', now(), 'checksystem', 'lehrveranstaltung');";
if(!$db->db_query($qry))
echo '<strong>system.tbl_webservicerecht '.$db->db_last_error().'</strong><br>';
else
echo '<br>system.tbl_webservicerecht: soap/studienordnung/loadTemplates->lehrveranstaltung hinzugefügt';
}
}
// NOTE(chris): Add Webservice Rights for lehrveranstaltung::loadTemplateByName
if($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicerecht WHERE berechtigung_kurzbz='soap/studienordnung' AND methode = 'loadTemplateByName' AND klasse = 'lehrveranstaltung';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_webservicerecht(berechtigung_kurzbz, methode, insertamum, insertvon, klasse) VALUES('soap/studienordnung', 'loadTemplateByName', now(), 'checksystem', 'lehrveranstaltung');";
if(!$db->db_query($qry))
echo '<strong>system.tbl_webservicerecht '.$db->db_last_error().'</strong><br>';
else
echo '<br>system.tbl_webservicerecht: soap/studienordnung/loadTemplateByName->lehrveranstaltung hinzugefügt';
}
}
// Add permission for avoiding checks when saving prestudentstatus // Add permission for avoiding checks when saving prestudentstatus
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/keine_studstatuspruefung';")) if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/keine_studstatuspruefung';"))
{ {
@@ -6314,7 +6368,7 @@ $tabellen=array(
"lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"), "lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"),
"lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"), "lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"),
"lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"), "lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz"), "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz","lehrveranstaltung_template_id"),
"lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"), "lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"),
"lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"),
"lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"),
+8 -3
View File
@@ -727,9 +727,9 @@ echo '
16: {sorter: false, filter: false}, 16: {sorter: false, filter: false},
19: {sorter: false, filter: false}, 19: {sorter: false, filter: false},
20: {sorter: false, filter: false}, 20: {sorter: false, filter: false},
21: {sorter: false, filter: false},
22: {sorter: false, filter: false}, 22: {sorter: false, filter: false},
23: {sorter: false, filter: false}}, 23: {sorter: false, filter: false},
24: {sorter: false, filter: false}},
widgetOptions : {filter_functions : { widgetOptions : {filter_functions : {
// Add select menu to this column // Add select menu to this column
12 : { 12 : {
@@ -1083,7 +1083,8 @@ if ($result_lv!=0)
<th>Zeugnis</th> <th>Zeugnis</th>
<th title='Soll diese Lehrveranstaltung bei Diplom-/Bachelorarbeit ausgewaehlt werden koennen?'>BA/DA</th> <th title='Soll diese Lehrveranstaltung bei Diplom-/Bachelorarbeit ausgewaehlt werden koennen?'>BA/DA</th>
<th>Koordinator</th> <th>Koordinator</th>
<th class=\"lvinfo\" >LV-Info</th>\n"; <th class=\"lvinfo\" >LV-Info</th>
<th>Template</th>\n";
if($write_admin) if($write_admin)
{ {
@@ -1295,6 +1296,10 @@ if ($result_lv!=0)
else else
echo 'vorhanden'; echo 'vorhanden';
echo '</td>'; echo '</td>';
//Template
echo "<td align='right'>";
echo $db->convert_html_chars($row->lehrveranstaltung_template_id);
echo '</td>';
if($write_admin) if($write_admin)
{ {
echo ' echo '
@@ -121,6 +121,7 @@
$lv->benotung = isset($_POST['benotung']); $lv->benotung = isset($_POST['benotung']);
$lv->lvinfo = isset($_POST['lvinfo']); $lv->lvinfo = isset($_POST['lvinfo']);
$lv->lehrauftrag = isset($_POST['lehrauftrag']); $lv->lehrauftrag = isset($_POST['lehrauftrag']);
$lv->lehrveranstaltung_template_id = $lv->lehrtyp_kurzbz == 'tpl' ? '' : $_POST['lehrveranstaltung_template_id'];
if(!$lv->save()) if(!$lv->save())
$errorstr = "Fehler beim Speichern der Daten: $lv->errormsg"; $errorstr = "Fehler beim Speichern der Daten: $lv->errormsg";
@@ -436,6 +437,13 @@
<td>Lehrauftrag</td> <td>Lehrauftrag</td>
<td><input type="checkbox" name="lehrauftrag" '.($lv->lehrauftrag?'checked':'').'></td> <td><input type="checkbox" name="lehrauftrag" '.($lv->lehrauftrag?'checked':'').'></td>
</tr> </tr>
<tr id="lehrveranstaltung_template_id">
<td>Template</td>
<td colspan="2"><input type="text" name="lehrveranstaltung_template_id" value="'.$lv->lehrveranstaltung_template_id.'" size="6"> <span class="text-template_name"></span></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr> <tr>
<td></td> <td></td>
<td></td> <td></td>
@@ -527,6 +535,7 @@
<title>Lehrveranstaltung - Details</title> <title>Lehrveranstaltung - Details</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css"> <link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/colorpicker.css" type="text/css"/> <link rel="stylesheet" href="../../skin/colorpicker.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css"/>
<script type="text/javascript" src="../../include/js/mailcheck.js"></script> <script type="text/javascript" src="../../include/js/mailcheck.js"></script>
<script type="text/javascript" src="../../include/js/datecheck.js"></script> <script type="text/javascript" src="../../include/js/datecheck.js"></script>
@@ -665,6 +674,91 @@
{ {
$(this).ColorPickerSetColor(this.value); $(this).ColorPickerSetColor(this.value);
}); });
$('input[name="lehrveranstaltung_template_id"]').autocomplete({
minLength: 2,
source: function(request, response) {
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
data: {
typ: "json",
class: "lehrveranstaltung",
method: "loadTemplates",
parameter_0: request.term
}
}).then(data => {
for (var k in data.return) {
data.return[k].value = data.return[k].lehrveranstaltung_id;
data.return[k].name = data.return[k].bezeichnung + " [" + data.return[k].kurzbz + "]";
data.return[k].label = data.return[k].name + " (" + data.return[k].lehrveranstaltung_id + ")";
}
response(data.return);
});
},
close: function(e, ui) {
$(this).trigger('check.ac-template');
},
focus: function(e, ui) {
$(this).removeClass('input_ok input_error').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
return false;
},
select: function(e, ui) {
$(this).addClass('input_ok').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
return false;
}
}).focus(function(e) {
$(this).removeClass('input_ok input_error');
}).blur(function(e) {
$(this).trigger('check.ac-template');
}).on('check.ac-template', function(e) {
var self = $(this),
val = self.val();
if (!val) {
self.removeClass('input_ok input_error').parent().parent().find('.text-template_name').text('');
} else {
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
data: {
typ: "json",
class: "lehrveranstaltung",
method: "loadTemplates",
parameter_0: val
},
success: function(data) {
if (self.val() == val) {
var label = '',
state = '',
item = null;
for (var k in data.return) {
if (data.return[k].lehrveranstaltung_id == val) {
item = data.return[k];
break;
}
}
if (item) {
state = 'input_ok';
label = item.bezeichnung + " [" + item.kurzbz + "]";
} else if (val) {
state = 'input_error';
}
self.removeClass('input_ok input_error').addClass(state).parent().parent().find('.text-template_name').text(label);
}
}
});
}
}).trigger('check.ac-template');
$('select[name="lehrtyp_kurzbz"]').change(function(e) {
if ($(this).val() == 'tpl') {
$('#lehrveranstaltung_template_id').hide();
} else {
$('#lehrveranstaltung_template_id').show();
}
}).change();
}); });
</script> </script>
<style type="text/css"> <style type="text/css">
+1
View File
@@ -1180,6 +1180,7 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
{ {
if(d.error!==undefined && d.error=='false') if(d.error!==undefined && d.error=='false')
{ {
node.attr("lvid", d.result[0].lehrveranstaltung_id);
node.attr("studienplan_lehrveranstaltung_id", d.result[0].studienplan_lehrveranstaltung_id); node.attr("studienplan_lehrveranstaltung_id", d.result[0].studienplan_lehrveranstaltung_id);
node.attr("id", d.result[0].studienplan_lehrveranstaltung_id); node.attr("id", d.result[0].studienplan_lehrveranstaltung_id);
$("#jsonData").html(d); $("#jsonData").html(d);