This commit is contained in:
cgfhtw
2023-01-16 10:32:24 +01:00
parent ebc7b5a3d9
commit 2f2f19306b
19 changed files with 1447 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
*
*/
class MyLv extends Auth_Controller
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct([
'index' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions?
]);
// Loads phrases system
$this->loadPhrases([
'global'
]);
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* @return void
*/
public function index()
{
$this->load->view('Cis/MyLv');
}
}
@@ -0,0 +1,216 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* This controller operates between (interface) the JS (GUI) and the FilterCmptLib (back-end)
* Provides data to the ajax get calls about the filter component
* Listens to ajax post calls to change the filter data
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the FilterCmpt has its
* own permissions check
*/
class Mylv extends Auth_Controller
{
/**
* Object initialization
*/
public function __construct()
{
parent::__construct([
'Student' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Studiensemester' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Lvs' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Info' => 'student/anrechnung_beantragen:r', // TODO(chris): permissions?
'Pruefungen' => 'student/anrechnung_beantragen:r' // TODO(chris): permissions?
]);
}
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
*/
public function Student()
{
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
$result = $this->LehrveranstaltungModel->getLvsByStudentWithGrades(get_uid());
if (isError($result))
return $this->outputJsonError(getError($result));
$this->outputJsonSuccess(getData($result));
}
/**
*/
public function Studiensemester()
{
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$result = $this->StudiensemesterModel->getWhereStudentHasLvs(get_uid());
if (isError($result))
return $this->outputJsonError(getError($result));
$this->outputJsonSuccess(getData($result));
}
/**
*/
public function Lvs($studiensemester_kurzbz)
{
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
$result = $this->LehrveranstaltungModel->getLvsByStudentWithGrades(get_uid(), $studiensemester_kurzbz, getUserLanguage());
if (isError($result))
return $this->outputJsonError(getError($result));
$this->outputJsonSuccess(getData($result));
}
/**
*/
public function Info($studiensemester_kurzbz, $lehrveranstaltung_id)
{
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
$result = $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
if (isError($result))
return $this->outputJsonError(getError($result));
$lv = current(getData($result) ?: []);
if (!$lv)
return $this->outputJsonError('Could\'t find Lehrveranstaltung with id: ' . $lehrveranstaltung_id);
$this->load->model('education/Lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel');
$result = $this->LehreinheitmitarbeiterModel->getForLv($lehrveranstaltung_id, $studiensemester_kurzbz);
if (isError($result))
return $this->outputJsonError(getError($result));
$lvinfo = [];
$lvinfo['lektoren'] = getData($result) ?: [];
$kollisionsfreie_user = unserialize(KOLLISIONSFREIE_USER);
$lvinfo['lektoren'] = array_values(array_filter($lvinfo['lektoren'], function ($v) use ($kollisionsfreie_user) {
return !in_array($v->uid, $kollisionsfreie_user);
}));
$lvinfo['lvLeitung'] = array_values(array_filter($lvinfo['lektoren'], function ($v) {
return $v->lehrfunktion_kurzbz == 'LV-Leitung';
}));
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
$result = $this->OrganisationseinheitModel->getWithType($lv->oe_kurzbz);
if (isError($result))
return $this->outputJsonError(getError($result));
$lvinfo['oe'] = current(getData($result) ?: []);
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
$result = $this->BenutzerfunktionModel->getBenutzerFunktionenDetailed('Leitung', $lv->oe_kurzbz);
if (isError($result))
return $this->outputJsonError(getError($result));
$lvinfo['oeLeitung'] = getData($result) ?: [];
$result = $this->LehrveranstaltungModel->getKoordinator($lehrveranstaltung_id, $studiensemester_kurzbz);
if (isError($result))
return $this->outputJsonError(getError($result));
$lvinfo['koordinator'] = getData($result) ?: [];
if (defined('ACTIVE_ADDONS') && in_array('lvinfo', explode(';', ACTIVE_ADDONS)) && file_exists(FHCPATH . 'addons/lvinfo/include/lvinfo.class.php'))
{
require_once(FHCPATH . 'addons/lvinfo/include/lvinfo.class.php');
$lvinfoObj = new lvinfo();
$lvinfoObj->loadLVinfo($lehrveranstaltung_id, $studiensemester_kurzbz, null, true);
if (is_array($lvinfoObj->result))
{
$oldP = property_exists($this, 'p') ? $this->p : null;
$result = [];
$lvinfos = $lvinfoObj->result;
$lvinfoSet = new lvinfo();
$lvinfoSet->load_lvinfo_set($studiensemester_kurzbz);
foreach ($lvinfos as $lvi)
{
$this->p = null;
$this->loadPhrases('ui', $lvi->sprache);
$result[$lvi->sprache] = [];
foreach ($lvinfoSet->result as $set)
{
$key = $set->lvinfo_set_kurzbz;
if (!isset($lvi->data[$key]))
continue;
$info['header'] = $set->lvinfo_set_bezeichnung[$lvi->sprache];
if (isset($set->einleitungstext[$lvi->sprache]))
$info['subheader'] = $set->einleitungstext[$lvi->sprache];
switch ($set->lvinfo_set_typ)
{
case 'boolean':
$info['body'] = $this->p->t('ui', $lvi->data[$key] === true ? 'ja' : 'nein');
break;
case 'array':
$info['body'] = array_map('htmlspecialchars', $lvi->data[$key]);
break;
case 'editor':
$info['body'] = $lvi->data[$key];
break;
default:
$info['body'] = htmlspecialchars($lvi->data[$key]);
}
if ($info['body'])
$result[$lvi->sprache][] = $info;
}
}
if ($result)
{
$lvinfo['lvinfo'] = $result;
$lvinfo['lvinfoDefaultLang'] = getUserLanguage();
$this->load->model('system/Sprache_model', 'SpracheModel');
$result = $this->SpracheModel->loadMultiple(array_keys($result));
if (!isError($result))
{
$result = getData($result);
$lvinfo['sprachen'] = [];
foreach ($result as $sprache) {
$lvinfo['sprachen'][$sprache->sprache] = $sprache;
}
}
}
$this->p = $oldP;
}
}
$this->outputJsonSuccess($lvinfo);
}
/**
*/
public function Pruefungen($lehrveranstaltung_id)
{
$this->load->model('education/Pruefung_model', 'PruefungModel');
$result = $this->PruefungModel->getByStudentAndLv(get_uid(), $lehrveranstaltung_id, getUserLanguage());
if (isError($result))
return $this->outputJsonError(getError($result));
$this->outputJsonSuccess(getData($result));
}
}
@@ -0,0 +1,23 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
*
*/
class Phrasen extends FHC_Controller
{
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
* @param string $module
*/
public function LoadModule($module)
{
$this->load->library('PhrasesLib', [$module], 'pj');
$this->outputJsonSuccess(json_decode($this->pj->getJSON()));
}
}
@@ -41,4 +41,38 @@ class Lehreinheitmitarbeiter_model extends DB_Model
return error ('Incorrect parameter type');
}
}
/**
* @param integer $lehrveranstaltung_id
* @param string $studiensemester_kurzbz
*
* @return stdClass
*/
public function getForLv($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$this->addSelect('ma.uid, ma.vorname, ma.nachname, ma.titelpre, ma.titelpost, lehrfunktion_kurzbz');
$this->addGroupBy('ma.uid, ma.vorname, ma.nachname, ma.titelpre, ma.titelpost, lehrfunktion_kurzbz');
$this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
$this->addJoin('campus.vw_mitarbeiter ma', $this->dbTable . '.mitarbeiter_uid=ma.uid');
$this->addOrder('nachname');
$this->addOrder('vorname');
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON') && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
{
$this->addJoin('(SELECT vertrag_id, CASE WHEN vertragsstatus_kurzbz=\'storno\' THEN 0 WHEN vertragsstatus_kurzbz=\'erteilt\' THEN 1 ELSE 2 END AS vertragsstatus_kurzbz FROM lehre.tbl_vertrag_vertragsstatus) v', 'vertrag_id', 'LEFT');
$having = $this->db->compile_binds('(EXISTS (SELECT 1 FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=? AND tbl_studiensemester.start < (SELECT start FROM public.tbl_studiensemester stsem WHERE stsem.studiensemester_kurzbz=?)) OR MIN(vertragsstatus_kurzbz)=1)', [
$studiensemester_kurzbz,
CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON
]);
$this->db->having($having);
}
return $this->loadWhere([
'lehrveranstaltung_id' => $lehrveranstaltung_id,
'studiensemester_kurzbz' => $studiensemester_kurzbz
]);
}
}
@@ -231,6 +231,104 @@ class Lehrveranstaltung_model extends DB_Model
return $this->execQuery($qry, $params);
}
/**
* Gets Lehrveranstaltungen of a student with grades if available
*
* @param string $student_uid
* @param string $studiensemester_kurzbz
* @param string|null $sprache
*
* @return stdClass
*/
public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null)
{
if ($sprache) {
$sprache_qry = $this->db->compile_binds('SELECT index FROM public.tbl_sprache WHERE sprache = ?', [$sprache]);
$bezeichnung = 'bezeichnung_mehrsprachig[(' . $sprache_qry . ')]';
$sgbezeichnung = $sprache == 'English' ? 'COALESCE(sg.english, sg.bezeichnung)' : 'sg.bezeichnung';
$lvbezeichnung = $sprache == 'English' ? 'COALESCE(v.bezeichnung_english, v.bezeichnung)' : 'v.bezeichnung';
} else {
$bezeichnung = 'bezeichnung';
$sgbezeichnung = 'sg.bezeichnung';
$lvbezeichnung = 'v.bezeichnung';
}
$this->addDistinct();
// TODO(chris): selects
/*
semester (?)
module
bezeichnung
sg_bezeichnung
studiengang_kuerzel
lvnote
znote
studiengang_kz
lehrveranstaltung_id
benotung
lvinfo
farbe
sprache (?)
ects (?)
incoming (?)
orgform_kurzbz (?)
*/
// TODO(chris): module or kf
#$this->addSelect($this->dbTable . '.*');
$this->addSelect('v.*');
$this->addSelect($this->dbTable . '.benotung');
$this->addSelect($this->dbTable . '.lvinfo');
$this->addSelect($this->dbTable . '.farbe');
$this->addSelect($this->dbTable . '.incoming');
$this->addSelect($this->dbTable . '.orgform_kurzbz');
$this->addSelect('v.studiengang_kz');
$this->addSelect('v.lehrveranstaltung_id');
$this->addSelect('v.semester');
$this->addSelect('v.sprache');
$this->addSelect('v.ects');
#$this->addSelect('splv.module');
$this->addSelect($lvbezeichnung . ' AS bezeichnung');
$this->addSelect($sgbezeichnung . ' AS sg_bezeichnung');
$this->addSelect('UPPER(sg.typ::VARCHAR(1) || sg.kurzbz) AS studiengang_kuerzel');
$this->addSelect('COALESCE(gnn.' . $bezeichnung . ', gnn.bezeichnung, gn.note::text) AS lvnote');
$this->addSelect('COALESCE(znn.' . $bezeichnung . ', znn.bezeichnung, zn.note::text) AS znote');
$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<>''");
$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');
$this->addJoin('lehre.tbl_zeugnisnote zn', 'zn.lehrveranstaltung_id=v.lehrveranstaltung_id AND zn.student_uid=v.uid AND zn.studiensemester_kurzbz=v.studiensemester_kurzbz', 'LEFT');
$this->addJoin('lehre.tbl_note znn', 'zn.note=znn.note', 'LEFT');
/*if (!defined("CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN") || !CIS_PROFIL_STUDIENPLAN_MODULE_AUSBLENDEN) {
$modulebezeichnung = str_replace('v.', 'm.', $lvbezeichnung);
$modulesql = '
LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung p ON(lv.studienplan_lehrveranstaltung_id_parent=p.studienplan_lehrveranstaltung_id)
LEFT JOIN lehre.tbl_lehrveranstaltung m ON(m.lehrveranstaltung_id = p.lehrveranstaltung_id)';
} else {
$modulebezeichnung = 'NULL';
$modulesql = '';
}
$this->addJoin('(
SELECT lv.lehrveranstaltung_id, sps.studiensemester_kurzbz, so.studiengang_kz, lv.semester, ' . $modulebezeichnung . ' AS module
FROM lehre.tbl_studienplan_lehrveranstaltung lv
LEFT JOIN lehre.tbl_studienplan sp ON(sp.studienplan_id=lv.studienplan_id)
JOIN lehre.tbl_studienplan_semester sps ON(sp.studienplan_id=sps.studienplan_id AND sps.semester=lv.semester)
JOIN lehre.tbl_studienordnung so ON(so.studienordnung_id=sp.studienordnung_id)
' . $modulesql . '
) splv', 'splv.lehrveranstaltung_id=v.lehrveranstaltung_id AND splv.studiensemester_kurzbz=v.studiensemester_kurzbz AND splv.studiengang_kz=v.studiengang_kz', 'LEFT');*/
return $this->loadWhere(['v.uid' => $student_uid, 'v.lehre' => true, 'v.studiensemester_kurzbz' => $studiensemester_kurzbz]);
}
/**
* Gets valid Lehrveranstaltungen with incoming places for a Studiensemester.
* Only
@@ -471,4 +569,76 @@ class Lehrveranstaltung_model extends DB_Model
return $this->execQuery($qry, array($student_uid));
}
/**
* @param integer $lehrveranstaltung_id
* @param string $studiensemester_kurzbz
*
* @return stdClass
*/
public function getKoordinator($lehrveranstaltung_id, $studiensemester_kurzbz = null)
{
$binds = [
$lehrveranstaltung_id,
$lehrveranstaltung_id,
$lehrveranstaltung_id,
$lehrveranstaltung_id
];
$qry = "
SELECT
a.uid, vorname, nachname, titelpre, titelpost
FROM (
SELECT
koordinator as uid
FROM
lehre.tbl_lehrveranstaltung
WHERE
lehrveranstaltung_id = ?
UNION
SELECT
uid
FROM
lehre.tbl_lehreinheit
JOIN lehre.tbl_lehrveranstaltung AS lehrfach ON(tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id)
JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz)
JOIN public.tbl_benutzerfunktion ON(tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz)
WHERE
tbl_benutzerfunktion.funktion_kurzbz='fbk'
AND (tbl_benutzerfunktion.datum_von IS null OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS null OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_lehreinheit.lehrveranstaltung_id = ?
AND tbl_benutzerfunktion.oe_kurzbz = (
SELECT
tbl_studiengang.oe_kurzbz
FROM
lehre.tbl_lehrveranstaltung
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE lehrveranstaltung_id = ?
)
AND EXISTS (
SELECT
lehrveranstaltung_id
FROM
lehre.tbl_lehrveranstaltung
WHERE
lehrveranstaltung_id = ?
AND koordinator IS null
)
";
if ($studiensemester_kurzbz !== null)
{
$qry .= " AND tbl_lehreinheit.studiensemester_kurzbz = ?";
$binds[] = $studiensemester_kurzbz;
}
$qry .= "
) AS a
JOIN campus.vw_mitarbeiter ON(a.uid=vw_mitarbeiter.uid)
WHERE vw_mitarbeiter.aktiv
";
return $this->execQuery($qry, $binds);
}
}
@@ -36,4 +36,34 @@ class Pruefung_model extends DB_Model
return $this->execQuery($qry, array($person_id, $studiensemester_kurzbz));
}
/**
* Gets Pruefungen of a student for a Lehrveranstaltung.
*
* @param string $uid
* @param string $lehrveranstaltung_id
* @param string|null $lehrveranstaltung_id
*
* @return object
*/
public function getByStudentAndLv($uid, $lehrveranstaltung_id, $sprache = null)
{
$this->dbTable = 'lehre.tbl_pruefung';
if ($sprache) {
$sprache_qry = $this->db->compile_binds('SELECT index FROM public.tbl_sprache WHERE sprache = ?', [$sprache]);
$bezeichnung = 'bezeichnung_mehrsprachig[(' . $sprache_qry . ')]';
} else {
$bezeichnung = 'bezeichnung';
}
$this->addSelect($this->dbTable . '.pruefung_id, ' . $this->dbTable . '.pruefungstyp_kurzbz, ' . $this->dbTable . '.datum, COALESCE(n.' . $bezeichnung . ', n.note::text) AS note');
$this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
$this->addJoin('lehre.tbl_note n', 'note');
return $this->loadWhere(['lehrveranstaltung_id' => $lehrveranstaltung_id, 'student_uid' => $uid]);
}
}
@@ -188,4 +188,18 @@ class Organisationseinheit_model extends DB_Model
}
return $this->loadWhere($condition);
}
/**
* @param string $oe_kurzbz
*
* @return stdClass
*/
public function getWithType($oe_kurzbz)
{
$this->addSelect($this->dbTable . '.*, t.bezeichnung AS organisationseinheittyp');
$this->addJoin('public.tbl_organisationseinheittyp t', 'organisationseinheittyp_kurzbz');
return $this->load($oe_kurzbz);
}
}
@@ -204,4 +204,22 @@ class Studiensemester_model extends DB_Model
return $this->execQuery($query, array($studiensemester_kurzbz));
}
/**
* @param string $student_uid
*
* @return StdClass
*/
public function getWhereStudentHasLvs($student_uid)
{
$this->addDistinct();
$this->addSelect($this->dbTable . '.*');
$this->addJoin('campus.vw_student_lehrveranstaltung v', 'studiensemester_kurzbz');
$this->db->where("v.lehreverzeichnis<>''");
$this->addOrder($this->dbTable . '.start');
return $this->loadWhere(['uid' => $student_uid, 'v.lehre' => true]);
}
}
@@ -11,4 +11,19 @@ class Sprache_model extends DB_Model
$this->dbTable = 'public.tbl_sprache';
$this->pk = 'sprache';
}
/**
* @param array $sprachen
*
* @return stdClass
*/
public function loadMultiple($sprachen)
{
$this->db->where_in('sprache', $sprachen);
$this->addOrder('index');
return $this->load();
}
}
+82
View File
@@ -0,0 +1,82 @@
<?php
$includesArray = array(
'customJSModules' => ['public/js/apps/Cis/MyLv/Student.js'],
'customCSSs' => [
'public/css/components/dashboard.css'
]
);
$this->load->view('templates/CISHTML-Header', $includesArray);
?>
<div id="content">
<h2>MyLv</h2>
<hr>
<mylv-student></mylv-student>
<?php $studiengaenge = [];foreach ($studiengaenge as $studiengang) { ?>
<h3><?= $studiengang['bezeichnung'] . ' - ' . $studiengang['studiengang_kz']; ?></h3>
<?php foreach ($studiengang['semester'] as $semester) { ?>
<h4><?= implode(",", array_keys($semester['studiensemester_kurzbz'])); ?>, <?= $semester['semester']; ?>.Semester</h4>
<?php foreach ($semester['lvs'] as $lv) { ?>
<!-- lehrveranstaltung_id: <?= $lv->lehrveranstaltung_id; ?><br>
kurzbz: <?= $lv->kurzbz; ?><br> -->
bezeichnung: <?= $lv->bezeichnung; ?><br>
<!-- studiengang_kz: <?= $lv->studiengang_kz; ?><br>
semester: <?= $lv->semester; ?><br>
sprache: <?= $lv->sprache; ?><br>
ects: <?= $lv->ects; ?><br>
semesterstunden: <?= $lv->semesterstunden; ?><br>
anmerkung: <?= $lv->anmerkung; ?><br>
lehre: <?= $lv->lehre; ?><br>
lehreverzeichnis: <?= $lv->lehreverzeichnis; ?><br>
aktiv: <?= $lv->aktiv; ?><br>
planfaktor: <?= $lv->planfaktor; ?><br>
planlektoren: <?= $lv->planlektoren; ?><br>
planpersonalkosten: <?= $lv->planpersonalkosten; ?><br>
plankostenprolektor: <?= $lv->plankostenprolektor; ?><br>
ext_id: <?= $lv->ext_id; ?><br>
sort: <?= $lv->sort; ?><br>
zeugnis: <?= $lv->zeugnis; ?><br>
koordinator: <?= $lv->koordinator; ?><br>
projektarbeit: <?= $lv->projektarbeit; ?><br>
lehrform_kurzbz: <?= $lv->lehrform_kurzbz; ?><br>
bezeichnung_english: <?= $lv->bezeichnung_english; ?><br>
orgform_kurzbz: <?= $lv->orgform_kurzbz; ?><br>
incoming: <?= $lv->incoming; ?><br>
lehrtyp_kurzbz: <?= $lv->lehrtyp_kurzbz; ?><br>
oe_kurzbz: <?= $lv->oe_kurzbz; ?><br>
raumtyp_kurzbz: <?= $lv->raumtyp_kurzbz; ?><br>
anzahlsemester: <?= $lv->anzahlsemester; ?><br>
semesterwochen: <?= $lv->semesterwochen; ?><br>
lvnr: <?= $lv->lvnr; ?><br>
semester_alternativ: <?= $lv->semester_alternativ; ?><br>
farbe: <?= $lv->farbe; ?><br>
old_lehrfach_id: <?= $lv->old_lehrfach_id; ?><br>
sws: <?= $lv->sws; ?><br>
lvs: <?= $lv->lvs; ?><br>
alvs: <?= $lv->alvs; ?><br>
lvps: <?= $lv->lvps; ?><br>
las: <?= $lv->las; ?><br>
benotung: <?= $lv->benotung; ?><br>
lvinfo: <?= $lv->lvinfo; ?><br>
lehrauftrag: <?= $lv->lehrauftrag; ?><br>
lehrmodus_kurzbz: <?= $lv->lehrmodus_kurzbz; ?><br>
lehrveranstaltung_template_id: <?= $lv->lehrveranstaltung_template_id; ?><br>
uid: <?= $lv->uid; ?><br>
lehreinheit_id: <?= $lv->lehreinheit_id; ?><br> -->
studiensemester_kurzbz: <?= $lv->studiensemester_kurzbz; ?><br>
<!-- lehrfach_id: <?= $lv->lehrfach_id; ?><br>
stundenblockung: <?= $lv->stundenblockung; ?><br>
wochenrythmus: <?= $lv->wochenrythmus; ?><br>
start_kw: <?= $lv->start_kw; ?><br>
raumtyp: <?= $lv->raumtyp; ?><br>
raumtypalternativ: <?= $lv->raumtypalternativ; ?><br>
lv_lehrform_kurzbz: <?= $lv->lv_lehrform_kurzbz; ?><br> -->
<?php } ?>
<hr>
<?php } ?>
<hr>
<?php } ?>
</div>
<?php $this->load->view('templates/CISHTML-Footer', $includesArray); ?>