mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-24 15:39:28 +00:00
MyLv
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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); ?>
|
||||
Reference in New Issue
Block a user