diff --git a/application/controllers/api/frontend/v1/LvMenu.php b/application/controllers/api/frontend/v1/LvMenu.php
index f9a8d0568..45741b567 100644
--- a/application/controllers/api/frontend/v1/LvMenu.php
+++ b/application/controllers/api/frontend/v1/LvMenu.php
@@ -39,6 +39,18 @@ class LvMenu extends FHCAPI_Controller
'getLvMenu' => self::PERM_LOGGED
]);
+ $this->load->model("ressource/Mitarbeiter_model");
+ $this->load->model("education/Lehreinheit_model");
+ $this->load->model("education/Lehrveranstaltung_model");
+ $this->load->model("organisation/Studiengang_model");
+ $this->load->model("accounting/Vertrag_model");
+ $this->load->model("system/Variable_model");
+ $this->load->model("person/Benutzergruppe_model");
+ $this->load->model("education/Lvangebot_model");
+ $this->load->model("ressource/Lehretools_model");
+
+ $this->load->library("PermissionLib", null, 'PermissionLib');
+
$this->load->library("PhrasesLib");
$this->loadPhrases(array('global'));
}
@@ -58,57 +70,36 @@ class LvMenu extends FHCAPI_Controller
// FH-Core Variables
// ##########################################################################################
-
- require_once(FHCPATH.'config/cis.config.inc.php');
- require_once(FHCPATH.'include/lehrveranstaltung.class.php');
- require_once(FHCPATH.'include/studiensemester.class.php');
- require_once(FHCPATH.'include/lehreinheit.class.php');
- require_once(FHCPATH.'include/vertrag.class.php');
- require_once(FHCPATH.'include/functions.inc.php');
- require_once(FHCPATH.'include/benutzerberechtigung.class.php');
- require_once(FHCPATH.'include/studiengang.class.php');
require_once(FHCPATH.'include/phrasen.class.php');
- require_once(FHCPATH.'include/lvangebot.class.php');
- require_once(FHCPATH.'include/lehre_tools.class.php');
- // data gets not returned
- //require_once(FHCPATH.'addons/moodle/lib/LogicCourses.php');
- //require_once(FHCPATH.'addons/moodle/lib/Database.php');
// get the sprache
- $sprache = getSprache();
+ $sprache = getUserLanguage();
$p = new phrasen($sprache);
//$p = $this->$p;
- // get the db
- if (!$db = new basis_db())
- die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
-
// get the user
if (!$user=getAuthUID())
- die($p->t('global/nichtAngemeldet'));
+ $this->terminateWithError($p->t('global/nichtAngemeldet'));
// check if is_lector
- if(check_lektor($user))
- $is_lector=true;
- else
- $is_lector=false;
+ $is_lector = false;
+ $mares = $this->Mitarbeiter_model->isMitarbeiter($user);
+ if(hasData($mares))
+ {
+ $is_lector = getData($mares);
+ }
// definition of user_is_allowed_to_upload
$user_is_allowed_to_upload=false;
-
- // rechte des users
- $rechte = new benutzerberechtigung();
- $rechte->getBerechtigungen($user);
-
$angezeigtes_stsem = $studiensemester_kurzbz;
- // load lehreinheit
- $lehreinheit = new lehreinheit($lvid);
-
// load lehrveranstaltung
- $lv_obj = new lehrveranstaltung();
- $lv_obj->load($lvid);
- $lv=$lv_obj;
+ $lvres = $this->Lehrveranstaltung_model->load($lvid);
+ if(!hasData($lvres))
+ {
+ $this->terminateWithError('LV ' . $lvid . ' not found.');
+ }
+ $lv = (getData($lvres))[0];
// define studiengang_kz / semester / lehrverzeichnis
$studiengang_kz = $lv->studiengang_kz;
@@ -116,31 +107,28 @@ class LvMenu extends FHCAPI_Controller
$short = $lv->lehreverzeichnis;
// load studiengang
- $stg_obj = new studiengang();
- $stg_obj->load($lv->studiengang_kz);
- $kurzbz = $stg_obj->kuerzel;
+ $stgres = $this->Studiengang_model->load($lv->studiengang_kz);
+ if(!hasData($stgres))
+ {
+ $this->terminateWithError('Stg ' . $lv->studiengang_kz . ' nof found.');
+ }
+ $stg = (getData($stgres))[0];
+ $kurzbz = strtoupper($stg->typ . $stg->kurzbz);
$short_name = $lv->bezeichnung;
$short_short_name = $lv->lehreverzeichnis;
- // create documents directory
- $dir_name=DOC_ROOT.'/documents';
- if(!is_dir($dir_name))
- {
- exec('mkdir -m 755 '.escapeshellarg($dir_name));
- exec('sudo chown www-data:teacher '.escapeshellarg($dir_name));
- }
-
// angemeldet
$angemeldet = true;
if(defined('CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN && !$is_lector)
{
$angemeldet = false;
- $lehrveranstaltung_obj = new lehrveranstaltung();
- $result = $lehrveranstaltung_obj->getLehreinheitenOfLv($lvid, $user, $angezeigtes_stsem);
+ $lesres = $this->Lehreinheit_model->getLehreinheitenForStudentAndStudienSemester(
+ $lvid, $user, $angezeigtes_stsem
+ );
- if(count($result)>0)
+ if(hasData($lesres) && count(getData($lesres)) > 0)
$angemeldet = true;
}
@@ -153,72 +141,66 @@ class LvMenu extends FHCAPI_Controller
// wird zusätzlich das Lehrfach der Lehreinheit angezeigt.
if($is_lector )
{
- $result = $lehreinheit->lehrfach_id_mitarbeiter($angezeigtes_stsem,$user,$lvid);
+ $result = $this->Lehreinheit_model->getLehrfachIdMitarbeiter($angezeigtes_stsem,$user,$lvid);
}
else
{
- $result = $lehreinheit->lehrfach_id_studierender($angezeigtes_stsem,$user,$lvid);
-
+ $result = $this->Lehreinheit_model->getLehrfachIdStudierender($angezeigtes_stsem,$user,$lvid);
}
// Wenn die LV mehrere verschiedenen Lehrfaecher hat, und der User zu mehreren davon zugeteilt ist
// wird das Lehrfach nicht angezeigt damit es nicht zu verwirrungen kommt.
- if(count($result)==1 && $row = $result[0])
- {
- $lehrfach_id=$row->lehrfach_id;
+ if( ($lehrfaecher = getData($result)) && count($lehrfaecher)==1 && ($lehrfach = $lehrfaecher[0]))
+ {
+ $lehrfach_id=$lehrfach->lehrfach_id;
}
}
// lektor der lv
$lektor_der_lv=false;
-
- $db_result = $lehreinheit->lehreinheitInfo($lvid,$angezeigtes_stsem,$lehrfach_id);
- $num_rows_result = count($db_result);
+ $leinfores = $this->Lehreinheit_model->getLehreinheitInfo($lvid,$angezeigtes_stsem,$lehrfach_id);
+ $db_result = hasData($leinfores) ? getData($leinfores) : array();
- if($num_rows_result > 0)
+ foreach($db_result as $row_lector)
{
-
- foreach($db_result as $row_lector)
+
+ // Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
+ if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
+ && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
{
-
- // Lektor wird erst angezeigt wenn der Auftrag erteilt wurde
- if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
- && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
+ if (!$this->Vertrag_model->isVertragErteiltLV($lvid, $angezeigtes_stsem, $row_lector->uid))
{
- $vertrag = new vertrag();
- if (!$vertrag->isVertragErteiltLV($lvid, $angezeigtes_stsem, $row_lector->uid))
- {
- continue;
- }
+ continue;
}
-
-
- if($user==$row_lector->uid)
- {
- $lektor_der_lv=true;
- $user_is_allowed_to_upload=true;
- }
-
- // style of the link
- if($row_lector->lvleiter=='t')
- $style='style="font-weight: bold"';
- else
- $style='';
-
}
+
+
+ if($user == $row_lector->uid)
+ {
+ $lektor_der_lv=true;
+ $user_is_allowed_to_upload=true;
+ }
+
+ // style of the link
+ if($row_lector->lvleiter === true)
+ $style='style="font-weight: bold"';
+ else
+ $style='';
+
}
//Berechtigungen auf Fachbereichsebene
$lehrfach_oe_kurzbz_arr = array();
- if($result = $lv_obj->getBerechtigungenAufFachberechsebene($lvid,$angezeigtes_stsem))
+ $fbres = $this->Lehrveranstaltung_model->getBerechtigungenAufFachberechsebene($lvid, $angezeigtes_stsem);
+ $fbs = (hasData($fbres)) ? getData($fbres) : array();
+ foreach($fbs as $row)
{
- foreach($result as $row)
+ $lehrfach_oe_kurzbz_arr[] = $row->oe_kurzbz;
+ if($this->PermissionLib->isBerechtigt('lehre', null, $row->oe_kurzbz)
+ || $this->PermissionLib->isBerechtigt('assistenz', null, $stg->oe_kurzbz))
{
- $lehrfach_oe_kurzbz_arr[]=$row->oe_kurzbz;
- if($rechte->isBerechtigt('lehre',$row->oe_kurzbz) || $rechte->isBerechtigt('assistenz',$stg_obj->oe_kurzbz)){
- $user_is_allowed_to_upload=true;
- }
+ $user_is_allowed_to_upload=true;
}
}
@@ -230,21 +212,21 @@ class LvMenu extends FHCAPI_Controller
//todo: digitale anwesenheiten sollte ein Events.php im config/ folder beinhalten
//$this->fhc_menu_digitale_anwesenheiten($menu, $angemeldet, $studiengang_kz, $semester, $lvid, $angezeigtes_stsem, $p);
- $this->fhc_menu_lvinfo($menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $rechte, $lehrfach_oe_kurzbz_arr, $p);
+ $this->fhc_menu_lvinfo($menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr, $p);
$this->fhc_menu_feedback($menu, $angemeldet, $lvid, $p);
- $this->fhc_menu_gesamtnote($menu, $angemeldet, $lvid, $lv_obj, $is_lector, $angezeigtes_stsem, $p);
+ $this->fhc_menu_gesamtnote($menu, $angemeldet, $lvid, $lv, $is_lector, $angezeigtes_stsem, $p);
- $this->fhc_menu_emailStudierende($menu, $angemeldet, $lehreinheit->lehreinheit_id, $p);
+ $this->fhc_menu_emailStudierende($menu, $user, $angemeldet, $lvid, $angezeigtes_stsem, $p);
$this->fhc_menu_abmeldung($menu, $user, $is_lector, $lvid, $angezeigtes_stsem, $p);
$this->fhc_menu_lehretools($menu, $lvid, $angezeigtes_stsem, $sprache);
- $this->fhc_menu_anrechnungStudent($menu, $rechte, $lvid, $angezeigtes_stsem, $p);
+ $this->fhc_menu_anrechnungStudent($menu, $lvid, $angezeigtes_stsem, $p);
- $this->fhc_menu_anrechnungLector($menu, $rechte, $angezeigtes_stsem, $p);
+ $this->fhc_menu_anrechnungLector($menu, $angezeigtes_stsem, $p);
// LEGACY FH-CORE MENU POINTS
//$this->fhc_menu_notenliste($menu, $angemeldet, $is_lector, $lvid, $studiengang_kz, $angezeigtes_stsem, $kurzbz, $semester, $short_short_name, $p);
@@ -256,29 +238,29 @@ class LvMenu extends FHCAPI_Controller
// Addons Menu Logic
// ##########################################################################################
-
+
$params = [
'sprache'=>$sprache,
'p'=>$p,
'ci_p'=> $this->p,
- 'db'=>$db,
+ //'db'=>$db,
'user'=>$user,
'is_lector'=>$is_lector,
'user_is_allowed_to_upload'=>$user_is_allowed_to_upload,
- 'rechte'=>$rechte,
+ //'rechte'=>$rechte,
'angezeigtes_stsem'=>$angezeigtes_stsem,
- 'lehreinheit'=>$lehreinheit,
- 'lv_obj'=>$lv_obj,
+ //'lehreinheit'=>$lehreinheit,
+ 'lv_obj'=>$lv,
'lv'=>$lv,
'lvid'=>$lvid,
'studiengang_kz'=>$studiengang_kz,
'semester'=>$semester,
'short'=>$short,
- 'stg_obj'=>$stg_obj,
+ 'stg_obj'=>$stg,
'kurzbz'=>$kurzbz,
'short_name'=>$short_name,
'short_short_name'=>$short_short_name,
- 'dir_name'=>$dir_name,
+ //'dir_name'=>$dir_name,
'angemeldet'=>$angemeldet,
'lehrfach_id'=>$lehrfach_id,
'lektor_der_lv'=>$lektor_der_lv,
@@ -311,10 +293,6 @@ class LvMenu extends FHCAPI_Controller
array_multisort($pos, SORT_ASC, SORT_NUMERIC, $menu);
- // DEBUGGING
- $this->addMeta("is_lector",$is_lector);
- $this->addMeta("lektor_der_lv",$lektor_der_lv);
-
// HTTP response
// ##########################################################################################
@@ -340,7 +318,7 @@ class LvMenu extends FHCAPI_Controller
}
}
- private function fhc_menu_lvinfo(&$menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $rechte, $lehrfach_oe_kurzbz_arr, $p){
+ private function fhc_menu_lvinfo(&$menu, $lvid, $studiengang_kz, $lektor_der_lv, $is_lector, $lehrfach_oe_kurzbz_arr, $p){
// LVINFO
if(!defined('CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN)
@@ -351,8 +329,8 @@ class LvMenu extends FHCAPI_Controller
// Oder Berechtigung zum Bearbeiten eingetragen ist
if((!defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && $lektor_der_lv)
|| (defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT==true && $lektor_der_lv)
- || $rechte->isBerechtigt('lehre/lvinfo',$studiengang_kz)
- || $rechte->isBerechtigtMultipleOe('lehre/lvinfo', $lehrfach_oe_kurzbz_arr)
+ || $this->PermissionLib->isBerechtigt('lehre/lvinfo',$studiengang_kz)
+ || $this->PermissionLib->isBerechtigtMultipleOe('lehre/lvinfo', $lehrfach_oe_kurzbz_arr)
)
{
$c4_linkList[]= [$p->t('lehre/lvInfoBearbeiten'), 'ects/index.php?lvid='.$lvid];
@@ -424,43 +402,62 @@ class LvMenu extends FHCAPI_Controller
- private function fhc_menu_emailStudierende(&$menu, $angemeldet, $lehreinheit_id,$p){
+ private function fhc_menu_emailStudierende(&$menu, $user, $angemeldet, $lvid, $angezeigtes_stsem, $p){
// Email an Studierende
if((!defined('CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN) && $angemeldet)
{
$mailto='mailto:';
$c4_linkList=array();
- // load the Lehreinheit model and get the student mails
- $this->load->model('education/Lehreinheit_model','LehreinheitModel');
- $studentMails = $this->LehreinheitModel->getStudentenMail($lehreinheit_id);
+ $studentMailsRes = $this->Lehrveranstaltung_model->getStudentEMail($lvid, $angezeigtes_stsem);
// get the data of the database result and map the array of objects to their object property
- $studentMails = $this->getDataOrTerminateWithError($studentMails, 'No student mails found');
+ $studentMails = $this->getDataOrTerminateWithError($studentMailsRes, 'No student mails found');
- // emails used to create the mailto link
- $mailtoMails = array();
- $noMails = array();
- $noMailLink = FALSE;
- foreach($studentMails as $mail){
-
- if($mail->mail == 'nomail'){
- $noMails[]=$mail->gruppe_kurzbz;
- $noMailLink= TRUE;
- }else{
- $mailtoMails[]=$mail->mail;
+ $nomail='';
+ $variablesres = $this->Variable_model->getVariables($user);
+ $variables = (hasData($variablesres)) ? getData($variablesres) : array();
+
+ foreach ($studentMails as $row)
+ {
+ if($row->gruppe_kurzbz != '')
+ {
+ $bngrp_uids = $this->Benutzergrupp_model->getUids($row->gruppe_kurzbz, $angezeigtes_stsem);
+ if(count($bngrp_uids) > 0)
+ {
+ if(!$row->mailgrp)
+ {
+ $nomail = $row->gruppe_kurzbz . ' ';
+ }
+ else
+ {
+ $mailto .= mb_strtolower($row->gruppe_kurzbz . '@'
+ . DOMAIN . $variables['emailadressentrennzeichen']);
+ }
+ }
+ }
+ else
+ {
+ $mailto .= mb_strtolower($row->stg_typ . $row->stg_kurzbz
+ . $row->semester . trim($row->verband) . trim($row->gruppe)
+ . '@' . DOMAIN . $variables['emailadressentrennzeichen']);
}
}
- if($noMailLink){
- $c4_linkList[]=[$p->t('lehre/keinMailverteiler',array(implode(" ",$noMails))), '#'];
- $link_onclick='alert(\''.$p->t('lehre/keinMailverteiler',array(implode(" ",$noMails))).'\');';
- }else{
- $link_onclick='';
+ if($nomail != '')
+ {
+ $c4_linkList[] = array(
+ $p->t('lehre/keinMailverteiler', array($nomail)),
+ '#'
+ );
+ $link_onclick = 'alert(\''.$p->t('lehre/keinMailverteiler', array($nomail)) . '\');';
+ }
+ else
+ {
+ $link_onclick = '';
}
- $mailto .= implode(',',$mailtoMails);
$menu[]=array
(
@@ -483,9 +480,8 @@ class LvMenu extends FHCAPI_Controller
{
if(!$is_lector)
{
- $lvangebot = new lvangebot();
- $gruppen = $lvangebot->AbmeldungMoeglich($lvid, $angezeigtes_stsem, $user);
- if(count($gruppen)>0)
+ $gruppen = $this->Lvangebot_model->AbmeldungMoeglich($lvid, $angezeigtes_stsem, $user);
+ if(count($gruppen) > 0)
{
$menu[]=array
(
@@ -503,304 +499,50 @@ class LvMenu extends FHCAPI_Controller
private function fhc_menu_lehretools(&$menu, $lvid, $angezeigtes_stsem, $sprache){
//Anzeigen von zusaetzlichen Lehre-Tools
- $lehretools = new lehre_tools();
- if($lehretools->getTools($lvid, $angezeigtes_stsem))
+ $lehretools = $this->Lehretools_model->getTools($lvid, $angezeigtes_stsem, $sprache);
+ foreach($lehretools as $row)
{
- if(count($lehretools->result)>0)
- {
- foreach($lehretools->result as $row)
- {
- $menu[]=array
- (
- 'id'=>'core_menu_lehretools_'.$row->lehre_tools_id,
- 'position'=>'1000',
- 'name'=>$row->bezeichnung[$sprache],
- 'c4_icon'=>base_url('cms/dms.php?id='.$row->logo_dms_id),
- 'c4_link'=>$row->basis_url,
- );
- }
- }
+ $menu[] = array(
+ 'id' => 'core_menu_lehretools_' . $row->lehre_tools_id,
+ 'position' => '1000',
+ 'name' => $row->bezeichnung,
+ 'c4_icon' => base_url('cms/dms.php?id='.$row->logo_dms_id),
+ 'c4_link' => $row->basis_url,
+ );
}
}
- private function fhc_menu_anrechnungStudent(&$menu, $rechte, $lvid, $angezeigtes_stsem, $p){
+ private function fhc_menu_anrechnungStudent(&$menu, $lvid, $angezeigtes_stsem, $p){
// Anerkennung nachgewiesener Kenntnisse (Anrechnung) - Anzeige fuer Studenten
if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN)
- && $rechte->isBerechtigt('student/anrechnung_beantragen'))
+ && $this->PermissionLib->isBerechtigt('student/anrechnung_beantragen'))
{
$menu[]=array
(
- 'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse',
- 'position'=>'128',
- 'name'=>$p->t('lehre/anrechnung'),
- 'c4_icon'=>base_url('skin/images/button_listen.png'),
+ 'id' => 'core_menu_anerkennungNachgewiesenerKenntnisse',
+ 'position' => '128',
+ 'name' => $p->t('lehre/anrechnung'),
+ 'c4_icon' => base_url('skin/images/button_listen.png'),
'c4_icon2' => 'fa-regular fa-folder-open',
'c4_link' => base_url('cis.php/lehre/anrechnung/RequestAnrechnung?studiensemester='.urlencode($angezeigtes_stsem).'&lv_id='.urlencode($lvid))
);
}
- }
+ }
- private function fhc_menu_anrechnungLector(&$menu, $rechte, $angezeigtes_stsem, $p){
+ private function fhc_menu_anrechnungLector(&$menu, $angezeigtes_stsem, $p){
// Anerkennung nachgewiesener Kenntnisse (Anrechnung) - Anzeige fuer LektorInnen
if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN)
- && $rechte->isBerechtigt('lehre/anrechnung_empfehlen'))
+ && $this->PermissionLib->isBerechtigt('lehre/anrechnung_empfehlen'))
{
- $menu[]=array
- (
- 'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse_empfehlen',
- 'position'=>'128',
- 'name'=>$p->t('lehre/anrechnungen'),
- 'c4_icon'=> base_url('skin/images/button_listen.png'),
- 'c4_icon2' => 'fa-regular fa-folder-open',
- 'c4_link' => base_url('cis.php/lehre/anrechnung/ReviewAnrechnungUebersicht?studiensemester='.urlencode($angezeigtes_stsem))
- );
- }
- }
-
-// OLD PINBOARD MENU POINT *********************************************************************************************************************************************
-/*
-private function fhc_menu_pinboard(&$menu, $angemeldet, $is_lector, $studiengang_kz, $semester, $p){
- // Pinboard
- if((!defined('CIS_LEHRVERANSTALTUNG_PINBOARD_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_PINBOARD_ANZEIGEN) && $angemeldet)
- {
- $text='';
- if($is_lector)
- $text.= "".$p->t('profil/adminstration')."";
-
- // this is the new cis4 version
$menu[]=array
(
- 'id'=>'core_menu_pinboard',
- 'position'=>'110',
- 'name'=>$p->t('lehre/pinboard'),
- 'c4_icon'=>base_url('skin/images/button_pinboard.png'),
- 'c4_link'=>base_url('CisVue/Cms/news'),
- 'text'=>$text
- );
-
-
- }
- }
-*/
-
-// LEGACY MENU POINTS THAT USED OWN DIRECTORIES *************************************************************************************************************************
-/*
- private function fhc_menu_semesterplan(&$menu, $angemeldet, $user_is_allowed_to_upload, $rechte, $lvid, $studiengang_kz, $kurzbz, $semester, $short_short_name, $p){
-
- // Semesterplan
- if((!defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN) && $angemeldet)
- {
- $dir_name = $this->ensureDirectoryExists($kurzbz, $semester, $short_short_name, 'semesterplan','teacher');
-
- $dir_empty = $this->isDirectoryEmpty($dir_name);
-
- if($dir_empty == false)
- {
- $link = $dir_name.'/';
- }
- else
- $link = '';
-
- $text='';
- if((!defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT') && $user_is_allowed_to_upload)
- || (defined('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_LEKTOR_EDIT==true && $user_is_allowed_to_upload)
- || $rechte->isBerechtigt('admin',$studiengang_kz) || $rechte->isBerechtigt('lehre',$studiengang_kz))
- {
- $text.= '';
- $text.= $p->t('lehre/semesterplanUpload')."";
-
- $text.= ' ';
- $text.= $p->t('lehre/semesterplanVorlage');
- $text.= ' [html]';
- $text.= '';
- $text.= ' ';
- $text.= '[doc]';
- $text.= '';
- $text.= ' ('.$p->t('lehre/semesterplanVorlageHilfe').')';
- }
-
- $menu[]=array
- (
- 'id'=>'core_menu_semesterplan',
- 'position'=>'20',
- 'name'=>$p->t('lehre/semesterplan'),
- 'icon'=>'../../../skin/images/button_semplan.png',
- 'link'=>$link,
- 'c4_icon'=> base_url('skin/images/button_semplan.png'),
- 'c4_link'=> $link,
- 'link_target'=>'_blank',
- 'text'=>$text
- );
- }
- }
-
- private function fhc_menu_stundenupload(&$menu, $angemeldet, $lvid, $is_lector, $studiengang_kz, $kurzbz, $semester, $short, $short_short_name, $p){
- // Studentenupload
- if((!defined('CIS_LEHRVERANSTALTUNG_STUDENTENUPLOAD_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_STUDENTENUPLOAD_ANZEIGEN) && $angemeldet)
- {
- $link='';
- $link_target='';
-
- $dir_name = $this->ensureDirectoryExists($kurzbz, $semester, $short_short_name, 'upload','student');
- $dir_empty = $this->isDirectoryEmpty($dir_name);
-
- if(isset($dir_empty) && $dir_empty == false)
- {
- if($is_lector == true)
- {
- $link='lector_choice.php?lvid='.urlencode($lvid);
- $link_target='_blank';
- }
- else
- {
- $link='upload.php?course_id='.urlencode($studiengang_kz).'&term_id='.urlencode($semester).'&short='.urlencode($short);
- $link_target='_blank';
- }
- }
- else
- {
- if($is_lector == true)
- {
- $link='';
- }
- else
- {
- $link='upload.php?course_id='.urlencode($studiengang_kz).'&term_id='.urlencode($semester).'&short='.urlencode($short);
- $link_target='_blank';
- }
- }
- $menu[]=array
- (
- 'id'=>'core_menu_studentenupload',
- 'position'=>'90',
- 'name'=>$p->t('lehre/studentenAbgabe'),
- 'c4_icon'=>'skin/images/button_studiupload.png',
- 'c4_link'=>$link,
- 'link_target'=>$link_target
- );
- }
- }
-
- private function fhc_menu_download(&$menu, $angemeldet, $user_is_allowed_to_upload, $rechte, $semester, $kurzbz, $studiengang_kz, $short_short_name, $short, $p){
-
- if((!defined('CIS_LEHRVERANSTALTUNG_DOWNLOAD_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_DOWNLOAD_ANZEIGEN) && $angemeldet)
- {
- $dir_name = $this->ensureDirectoryExists($kurzbz, $semester, $short_short_name, 'download','teacher');
- $dir_empty = $this->isDirectoryEmpty($dir_name);
-
- $text = '';
- if($dir_empty == false)
- {
- $link = $dir_name.'/';
- }
- else
- $link = '';
-
- //Wenn user eine Lehrfachzuteilung fuer dieses Lehrfach hat wird
- //Ein Link zum Upload angezeigt und ein Link um das Download-Verzeichnis
- //als Zip Archiv herunterzuladen
- if($user_is_allowed_to_upload || $rechte->isBerechtigt('admin',$studiengang_kz) || $rechte->isBerechtigt('lehre',$studiengang_kz))// || $rechte->isBerechtigt('lehre',null,null,$fachbereich_id))
- {
- $text.= mb_strtolower("$kurzbz/$semester/$short/download");
- $text.= '
';
- $text.= "".$p->t('lehre/upload')."";
- $text.= ' ';
- }
-
- $menu[]=array
- (
- 'id'=>'core_menu_download',
- 'position'=>'30',
- 'name'=>$p->t('lehre/download'),
- 'icon'=>'../../../skin/images/button_download.png',
- 'link'=>$link,
- 'c4_icon'=> base_url('skin/images/button_download.png'),
- 'c4_link'=>$link,
- 'text'=>$text
- );
- }
- }
-
- private function fhc_menu_notenliste(&$menu, $angemeldet, $is_lector, $lvid, $studiengang_kz, $angezeigtes_stsem, $kurzbz, $semester, $short_short_name, $p){
- // Anwesenheits und Notenlisten
- if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN || $is_lector)
- {
- $link='';
- $name='';
- if($is_lector)
- {
- $name = $p->t('lehre/anwesenheitsUndNotenlisten');
- $link= "anwesenheitsliste.php?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&stsem=$angezeigtes_stsem";
- }
-
- $text='';
- if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN && ($angemeldet || $is_lector))
- {
- $dir_name = $this->ensureDirectoryExists($kurzbz, $semester, $short_short_name, 'leistung','teacher');
- $dir_empty = $this->isDirectoryEmpty($dir_name);
-
- if($dir_empty == false)
- {
-
- if($is_lector)
- {
- $text.= '';
- $text.= ''.$p->t('lehre/leistungsuebersicht').'';
- $text.= '';
- }
- else
- {
- $name = $p->t('lehre/leistungsuebersicht');
- $link = $dir_name;
- }
- }
- else
- {
- if($is_lector)
- {
- $text.= ''.$p->t('lehre/leistungsuebersicht').'';
- }
- else
- {
- $name = $p->t('lehre/leistungsuebersicht');
- $link = '';
- }
- }
- }
-
- $menu[]=array
- (
- 'id'=>'core_menu_anwesenheitslisten',
- 'position'=>'40',
- 'name'=>$name,
- 'icon'=>'../../../skin/images/button_listen.png',
- 'link'=>$link,
+ 'id' => 'core_menu_anerkennungNachgewiesenerKenntnisse_empfehlen',
+ 'position' => '128',
+ 'name' => $p->t('lehre/anrechnungen'),
'c4_icon'=> base_url('skin/images/button_listen.png'),
- 'c4_link'=>$link,
- 'text'=>$text
+ 'c4_icon2' => 'fa-regular fa-folder-open',
+ 'c4_link' => base_url('cis.php/lehre/anrechnung/ReviewAnrechnungUebersicht?studiensemester='.urlencode($angezeigtes_stsem))
);
}
- }
-
- private function ensureDirectoryExists($kurzbz, $semester, $short_short_name, $type, $role){
- $dir_name = DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/'.$type;
-
- if (!is_dir($dir_name)) {
- exec('mkdir -m 775 -p '.escapeshellarg($dir_name));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
- exec('sudo chown www-data:'.$role.' '.escapeshellarg($dir_name));
- }
-
- return $dir_name;
- }
-
- private function isDirectoryEmpty($dir){
- return count(scandir($dir)) == 2 ? true : false;
- }
-
- */
-
-
+ }
}
\ No newline at end of file
diff --git a/application/libraries/PermissionLib.php b/application/libraries/PermissionLib.php
index 857defbf7..c6e693666 100644
--- a/application/libraries/PermissionLib.php
+++ b/application/libraries/PermissionLib.php
@@ -95,6 +95,33 @@ class PermissionLib
return $isBerechtigt;
}
+ /**
+ * Prueft ob die Berechtigung zumindest fuer eine der angegebenen OE vorhanden ist.
+ * @param $berechtigung_kurzbz
+ * @param $oe_kurzbz
+ * @param $art
+ * @param $kostenstelle_id
+ * @return boolean
+ */
+ public function isBerechtigtMultipleOe($berechtigung_kurzbz, $oe_kurzbz, $art=null, $kostenstelle_id=null)
+ {
+ $results = array();
+
+ foreach($oe_kurzbz as $value)
+ {
+ $results[] = $this->isBerechtigt($berechtigung_kurzbz, $value, $art, $kostenstelle_id);
+ }
+
+ if(!in_array(true, $results))
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
/**
* Checks if the caller is allowed to access to this content with the given permissions
* - if it's called from command line than it's trusted
diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php
index 8725cd98d..abc2114a6 100644
--- a/application/models/accounting/Vertrag_model.php
+++ b/application/models/accounting/Vertrag_model.php
@@ -299,6 +299,91 @@ class Vertrag_model extends DB_Model
}
}
+ /**
+ * Prueft ob ein Mitarbeiter einen erteilten Vertrag zu einer Lehrveranstaltung besitzt.
+ * @param $lehrveranstaltung_id ID der Lehrveranstaltung
+ * @param $studiensemester_kurzbz Studiensemester das geprueft wird
+ * @param $mitarbeiter_uid UID des Mitarbeiters
+ */
+ public function isVertragErteiltLV($lehrveranstaltung_id, $studiensemester_kurzbz, $mitarbeiter_uid)
+ {
+ if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
+ && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
+ {
+ // Liegt das Studiensemester vor dem Pruefdatum, wird die LV immer als Erteilt angezeigt
+ $stsemquery = "
+ SELECT
+ tbl_studiensemester.start
+ FROM
+ public.tbl_studiensemester
+ WHERE
+ studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz)."
+ AND tbl_studiensemester.start < (
+ SELECT
+ start
+ FROM
+ public.tbl_studiensemester stsem
+ WHERE
+ stsem.studiensemester_kurzbz = " . $this->escape(CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON)."
+ )";
+
+ if ($stsemresult = $this->execReadOnlyQuery($stsemquery))
+ {
+ $stsemdata = getData($stsemresult);
+ if ($stsemdata && count($stsemdata) > 0)
+ {
+ // Wenn das Studiensemester vor dem Pruefdatum liegt, gilt der Vertrag immer als erteilt.
+ return true;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ $query = "
+ SELECT
+ 1
+ FROM
+ lehre.tbl_lehreinheitmitarbeiter
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ JOIN lehre.tbl_vertrag USING(vertrag_id)
+ JOIN lehre.tbl_vertrag_vertragsstatus USING(vertrag_id)
+ WHERE
+ tbl_lehreinheitmitarbeiter.mitarbeiter_uid = " . $this->escape($mitarbeiter_uid) . "
+ AND tbl_lehreinheit.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz) . "
+ AND tbl_lehreinheit.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
+ AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz='erteilt'
+ AND NOT EXISTS(
+ SELECT
+ 1
+ FROM
+ lehre.tbl_vertrag_vertragsstatus vstatus
+ WHERE
+ vstatus.vertrag_id = tbl_vertrag.vertrag_id
+ AND vstatus.vertragsstatus_kurzbz = 'storno'
+ )
+ ";
+
+ if ($result = $this->execReadOnlyQuery($query))
+ {
+ $data = getData($result);
+ if ($data && count($data) > 0)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
// -----------------------------------------------------------------------------------------------------------------
// Private methods
diff --git a/application/models/education/Lehreinheit_model.php b/application/models/education/Lehreinheit_model.php
index 869f0a19c..afad6870b 100644
--- a/application/models/education/Lehreinheit_model.php
+++ b/application/models/education/Lehreinheit_model.php
@@ -156,4 +156,92 @@ class Lehreinheit_model extends DB_Model
) AS subquery
",[DOMAIN,DOMAIN,$lehreinheit_id,$lehreinheit_id ]);
}
+
+ public function getLehreinheitenForStudentAndStudienSemester($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
+ {
+ $query = <<escape($lehrveranstaltung_id)} AND
+ vslv.uid = {$this->escape($student_uid)} AND
+ vslv.studiensemester_kurzbz = {$this->escape($studiensemester_kurzbz)}
+EOSQL;
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
+
+ public function getLehrfachIdMitarbeiter($angezeigtes_stsem,$user,$lvid)
+ {
+ $query = "
+ SELECT
+ distinct lehrfach_id
+ FROM
+ lehre.tbl_lehreinheit
+ JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
+ WHERE
+ studiensemester_kurzbz=" . $this->escape($angezeigtes_stsem) . "
+ AND mitarbeiter_uid=" . $this->escape($user)."
+ AND lehrveranstaltung_id=" . $this->escape(intval($lvid));
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
+
+ public function getLehrfachIdStudierender($angezeigtes_stsem,$user,$lvid)
+ {
+ $query = "
+ SELECT
+ distinct lehrfach_id
+ FROM
+ campus.vw_student_lehrveranstaltung
+ WHERE
+ lehrveranstaltung_id=" . $this->escape(intval($lvid))."
+ AND studiensemester_kurzbz=" . $this->escape($angezeigtes_stsem)."
+ AND uid=" . $this->escape($user);
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
+
+ public function getLehreinheitInfo($lvid, $angezeigtes_stsem, $lehrfach_id)
+ {
+ $query = "
+ SELECT
+ *
+ FROM (
+ SELECT
+ distinct on(uid) vorname, nachname, tbl_benutzer.uid as uid,
+ CASE
+ WHEN lehrfunktion_kurzbz='LV-Leitung' THEN true
+ ELSE false
+ END as lvleiter
+ FROM
+ lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter,
+ public.tbl_benutzer, public.tbl_person
+ WHERE
+ tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id
+ AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid
+ AND tbl_person.person_id = tbl_benutzer.person_id
+ AND lehrveranstaltung_id = " . $this->escape(intval($lvid)) . "
+ AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%'
+ AND tbl_benutzer.aktiv = true
+ AND tbl_person.aktiv = true
+ AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
+
+ if($lehrfach_id != '')
+ {
+ $query .= " AND tbl_lehreinheit.lehrfach_id = " . $this->escape(intval($lehrfach_id));
+ }
+
+ $query .= " ORDER BY uid, lvleiter desc) as a ORDER BY lvleiter desc, nachname, vorname";
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
}
diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php
index f2f762b7f..3f02f5ce7 100644
--- a/application/models/education/Lehrveranstaltung_model.php
+++ b/application/models/education/Lehrveranstaltung_model.php
@@ -969,4 +969,47 @@ class Lehrveranstaltung_model extends DB_Model
$this->addJoin('public.tbl_studiengang stg', 'studiengang_kz');
return $this->load($lehrveranstaltung_id);
}
+
+ //Berechtigungen auf Fachbereichsebene
+ public function getBerechtigungenAufFachberechsebene($lvid, $angezeigtes_stsem)
+ {
+ $query = "
+ SELECT
+ DISTINCT lehrfach.oe_kurzbz
+ FROM
+ lehre.tbl_lehrveranstaltung
+ JOIN
+ lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
+ JOIN
+ lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ WHERE
+ tbl_lehrveranstaltung.lehrveranstaltung_id = " . $this->escape(intval($lvid));
+
+ if(isset($angezeigtes_stsem) && $angezeigtes_stsem != ''){
+ $query .= " AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
+ }
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
+
+ public function getStudentEMail($lvid, $angezeigtes_stsem)
+ {
+ $query = "
+ SELECT
+ DISTINCT vw_lehreinheit.stg_kurzbz, vw_lehreinheit.stg_typ,
+ vw_lehreinheit.semester, COALESCE(vw_lehreinheit.verband,'') as verband,
+ COALESCE(vw_lehreinheit.gruppe,'') as gruppe,
+ vw_lehreinheit.gruppe_kurzbz, tbl_gruppe.mailgrp
+ FROM
+ campus.vw_lehreinheit
+ LEFT JOIN
+ public.tbl_gruppe USING(gruppe_kurzbz)
+ WHERE
+ lehrveranstaltung_id = " . $this->escape(intval($lvid)) . "
+ AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
+
+ $res = $this->execReadOnlyQuery($query);
+ return $res;
+ }
}
diff --git a/application/models/education/Lvangebot_model.php b/application/models/education/Lvangebot_model.php
index e16b726dd..8d5096fb0 100644
--- a/application/models/education/Lvangebot_model.php
+++ b/application/models/education/Lvangebot_model.php
@@ -11,4 +11,39 @@ class Lvangebot_model extends DB_Model
$this->dbTable = 'lehre.tbl_lvangebot';
$this->pk = 'lvangebot_id';
}
+
+/**
+ * Prueft ob eine Abmeldung von einer Lehrveranstaltung moeglich ist
+ * und liefert die Gruppen von denen sich abgemeldet werden kann
+ * @param $lehrveranstaltung_id
+ * @param $studiensemester_kurzbz
+ * @param $uid
+ * @return $gruppen Array mit den Gruppen
+ */
+ public function AbmeldungMoeglich($lehrveranstaltung_id, $studiensemester_kurzbz, $uid)
+ {
+ $query = "SELECT
+ gruppe_kurzbz
+ FROM
+ lehre.tbl_lvangebot
+ JOIN public.tbl_benutzergruppe USING(studiensemester_kurzbz, gruppe_kurzbz)
+ WHERE
+ tbl_lvangebot.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz)."
+ AND tbl_benutzergruppe.uid = " . $this->escape($uid)."
+ AND (tbl_lvangebot.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id))."
+ OR tbl_lvangebot.lehrveranstaltung_id IN(SELECT lehrveranstaltung_id_kompatibel
+ FROM lehre.tbl_lehrveranstaltung_kompatibel
+ WHERE lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id))."
+ )
+ )";
+ $res = $this->execReadOnlyQuery($query);
+ $rows = (hasData($res)) ? getData($res) : array();
+
+ $gruppen=array();
+ foreach($rows as $row)
+ {
+ $gruppen[] = $row->gruppe_kurzbz;
+ }
+ return $gruppen;
+ }
}
diff --git a/application/models/person/Benutzergruppe_model.php b/application/models/person/Benutzergruppe_model.php
index e569094c4..fba797641 100644
--- a/application/models/person/Benutzergruppe_model.php
+++ b/application/models/person/Benutzergruppe_model.php
@@ -12,4 +12,25 @@ class Benutzergruppe_model extends DB_Model
$this->pk = array('gruppe_kurzbz', 'uid');
$this->hasSequence = false;
}
+
+ /**
+ * Laedt die User in einer Benutzergruppe
+ * @param gruppe_kurzbz, stsem
+ * @return array
+ */
+ public function getUids($gruppe_kurzbz, $stsem)
+ {
+ $query = "
+ SELECT
+ uid
+ FROM
+ public.tbl_benutzergruppe
+ WHERE
+ gruppe_kurzbz = " . $this->escape($gruppe_kurzbz) . "
+ AND studiensemester_kurzbz = " . $this->escape($stsem);
+
+ $res = $this->execReadOnlyQuery($query);
+ $uids = (hasData($res)) ? getData($res) : array();
+ return $uids;
+ }
}
diff --git a/application/models/ressource/Lehretools_model.php b/application/models/ressource/Lehretools_model.php
new file mode 100644
index 000000000..69d9f6555
--- /dev/null
+++ b/application/models/ressource/Lehretools_model.php
@@ -0,0 +1,62 @@
+dbTable = 'campus.tbl_lehre_tools';
+ $this->pk = 'lehre_tools_id';
+ }
+
+ /**
+ *
+ * Laedt die Tools zu einer Lehrveranstaltung
+ * @param $lehrveranstaltung_id
+ * @param $studiensemester_kurzbz
+ */
+ public function getTools($lehrveranstaltung_id, $studiensemester_kurzbz, $sprache)
+ {
+ $query = "SELECT
+ lehre_tools_id,
+ bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache = " . $this->escape($sprache) . ")] AS bezeichnung,
+ kurzbz,
+ basis_url,
+ logo_dms_id
+ FROM
+ campus.tbl_lehre_tools
+ JOIN campus.tbl_lehre_tools_organisationseinheit USING(lehre_tools_id)
+ WHERE
+ campus.tbl_lehre_tools_organisationseinheit.aktiv AND
+ (
+ oe_kurzbz IN(
+ SELECT
+ tbl_studiengang.oe_kurzbz
+ FROM
+ lehre.tbl_lehrveranstaltung
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ WHERE
+ tbl_lehrveranstaltung.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
+ )
+ OR
+ oe_kurzbz IN(
+ SELECT
+ lehrfach.oe_kurzbz
+ FROM
+ lehre.tbl_lehreinheit
+ JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(lehrfach_id=lehrfach.lehrveranstaltung_id)
+ WHERE
+ tbl_lehreinheit.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz) . "
+ AND tbl_lehreinheit.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
+ )
+ )
+ ORDER BY lehre_tools_id";
+
+ $toolsres = $this->execReadOnlyQuery($query);
+ $tools = (hasData($toolsres)) ? getData($toolsres) : array();
+
+ return $tools;
+ }
+}
\ No newline at end of file
diff --git a/application/models/system/Variable_model.php b/application/models/system/Variable_model.php
index 875fc8876..bfa1dcd98 100644
--- a/application/models/system/Variable_model.php
+++ b/application/models/system/Variable_model.php
@@ -66,6 +66,15 @@ class Variable_model extends DB_Model
}
}
}
+
+ if (!isset($vardata['emailadressentrennzeichen']))
+ {
+ $vardata['emailadressentrennzeichen'] =
+ (defined('DEFAULT_EMAILADRESSENTRENNZEICHEN'))
+ ? DEFAULT_EMAILADRESSENTRENNZEICHEN
+ : ',';
+ }
+
$result = success($vardata);
}