diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php
index cd0756762..49a819a0f 100644
--- a/cis/private/profile/studienplan.php
+++ b/cis/private/profile/studienplan.php
@@ -75,6 +75,8 @@ if(isset($_GET['getAnmeldung']))
// Die Anmeldung ist zur Lehrveranstaltung selbst und zu den dazu kompatiblen Lehrveranstaltungen moeglich
if($kompatibel = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_id))
{
+ $kompatibel[]=$lehrveranstaltung_id;
+ $kompatibel = array_unique($kompatibel);
foreach($kompatibel as $lvid)
{
$lvangebot = new lvangebot();
@@ -110,11 +112,11 @@ if(isset($_GET['getAnmeldung']))
echo '
'.$lv->bezeichnung.'
';
}
}
- else
+/* else
{
- // LV wird angeboten, Anmeldefenster ist aber nicht offen
+ // LV wird angeboten, Anmeldefenster ist aber nicht offen oder keine Gruppe zugeteilt
echo '
'.$lv->bezeichnung.'
';
- }
+ }*/
}
}
}
@@ -363,26 +365,25 @@ function drawTree($tree, $depth)
foreach($stsem_arr as $key=>$stsem)
{
$semester=$key+1;
-
- $empfehlung="";
+
+ $tdclass=array();
//Empfehlung holen
if(isset($lv_arr[$row_tree->lehrveranstaltung_id]))
{
$empfohlenesSemester = $lv_arr[$row_tree->lehrveranstaltung_id]->semester;
if($semester==$empfohlenesSemester)
- $empfehlung='class="empfehlung"';
+ $tdclass[]='empfehlung';
}
- echo '
';
-
+ $tdinhalt='';
// Ist bereits eine Note für diese LV in diesem Stsem vorhanden?
if(isset($noten_arr[$row_tree->lehrveranstaltung_id][$stsem]))
{
if($note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->positiv)
- echo ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.'';
+ $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.'';
else
- echo ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.'';
+ $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.'';
}
else
{
@@ -444,34 +445,38 @@ function drawTree($tree, $depth)
if($semesterlock)
{
- echo ' ';
+ $tdinhalt.= ' ';
}
else
{
if($angebot_vorhanden)
{
+ $tdclass[]='angebot';
if($angemeldet)
{
- echo ' ';
+ $tdinhalt.= ' ';
}
else
{
if($anmeldungmoeglich)
- echo ' ';
+ $tdinhalt.= ' ';
else
- echo 'X';
+ $tdinhalt.= '-';
if(!$regelerfuellt)
- echo 'X';
+ $tdinhalt.= 'X';
}
}
else
{
// LV wird nicht angeboten
- echo '-';
+ $tdinhalt.= '-';
}
}
}
+ $class=implode(',',$tdclass);
+ echo ' | ';
+ echo $tdinhalt;
echo ' | ';
}
echo '';
@@ -489,11 +494,15 @@ echo '
'.$p->t('studienplan/legende').':
'.$p->t('studienplan/legendeEmpfehlung').' |
- | X |
+ |
+ |
+
+
+ | |
'.$p->t('studienplan/legendeLVwirdAngeboten').' |
-  |
+  |
'.$p->t('studienplan/legendeLock').' |
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index 2268707ee..4ecd03802 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -1062,5 +1062,275 @@ class prestudent extends person
return false;
}
}
+
+ /**
+ * Liefert die Anzahl der Bewerber im ausgewaehlten Bereich
+ * @param $studiensemester_kurzbz Studiensemester
+ * @param $studiengang_kz Kennzahl des Studienganges (optional)
+ * @param $orgform_kurzbz Organisationsform (optional)
+ * @param $ausbildungssemester Ausbildungssemester (optional)
+ * @return Anzahl der Bewerber oder false im Fehlerfall
+ */
+ public function getAnzBewerber($studiensemester_kurzbz, $studiengang_kz=null, $orgform_kurzbz=null, $ausbildungssemester=null)
+ {
+ $qry = "SELECT
+ count(*) as anzahl
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING(prestudent_id)
+ WHERE
+ tbl_prestudentstatus.status_kurzbz='Bewerber'
+ AND tbl_prestudentstatus.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
+
+ if(!is_null($studiengang_kz))
+ $qry.=" AND tbl_prestudent.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
+
+ if(!is_null($orgform_kurzbz))
+ $qry.=" AND (tbl_prestudentstatus.orgform_kurzbz=".$this->db_add_param($orgform_kurzbz)." OR (tbl_prestudentstatus.orgform_kurzbz IS NULL AND EXISTS(SELECT 1 FROM public.tbl_studiengang WHERE studiengang_kz=tbl_prestudent.studiengang_kz AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz).")))";
+
+ if(!is_null($ausbildungssemester))
+ $qry.=" AND tbl_prestudentstatus.ausbildungssemester=".$this->db_add_param($ausbildungssemester);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return $row->anzahl;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert die Anzahl der Interessenten im ausgewaehlten Bereich
+ * @param $studiensemester_kurzbz Studiensemester
+ * @param $studiengang_kz Kennzahl des Studienganges (optional)
+ * @param $orgform_kurzbz Organisationsform (optional)
+ * @param $ausbildungssemester Ausbildungssemester (optional)
+ * @return Anzahl der Interessenten oder false im Fehlerfall
+ */
+ public function getAnzInteressenten($studiensemester_kurzbz, $studiengang_kz=null, $orgform_kurzbz=null, $ausbildungssemester=null)
+ {
+ $qry = "SELECT
+ count(*) as anzahl
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING(prestudent_id)
+ WHERE
+ tbl_prestudentstatus.status_kurzbz='Interessent'
+ AND tbl_prestudentstatus.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
+
+ if(!is_null($studiengang_kz))
+ $qry.=" AND tbl_prestudent.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
+
+ if(!is_null($orgform_kurzbz))
+ $qry.=" AND (tbl_prestudentstatus.orgform_kurzbz=".$this->db_add_param($orgform_kurzbz)." OR (tbl_prestudentstatus.orgform_kurzbz IS NULL AND EXISTS(SELECT 1 FROM public.tbl_studiengang WHERE studiengang_kz=tbl_prestudent.studiengang_kz AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz).")))";
+
+ if(!is_null($ausbildungssemester))
+ $qry.=" AND tbl_prestudentstatus.ausbildungssemester=".$this->db_add_param($ausbildungssemester);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return $row->anzahl;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert die Anzahl der Interessenten mit Zugangsvoraussetzung im ausgewaehlten Bereich
+ * @param $studiensemester_kurzbz Studiensemester
+ * @param $studiengang_kz Kennzahl des Studienganges (optional)
+ * @param $orgform_kurzbz Organisationsform (optional)
+ * @param $ausbildungssemester Ausbildungssemester (optional)
+ * @return Anzahl der Interessenten mit ZGV oder false im Fehlerfall
+ */
+ public function getAnzInteressentenZGV($studiensemester_kurzbz, $studiengang_kz=null, $orgform_kurzbz=null, $ausbildungssemester=null)
+ {
+ $qry = "SELECT
+ count(*) as anzahl
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING(prestudent_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ WHERE
+ tbl_prestudentstatus.status_kurzbz='Interessent'
+ AND tbl_prestudentstatus.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
+ AND ((tbl_studiengang.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)";
+
+ if(!is_null($studiengang_kz))
+ $qry.=" AND tbl_prestudent.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
+
+ if(!is_null($orgform_kurzbz))
+ $qry.=" AND (tbl_prestudentstatus.orgform_kurzbz=".$this->db_add_param($orgform_kurzbz)." OR (tbl_prestudentstatus.orgform_kurzbz IS NULL AND tbl_studiengang.orgform_kurzbz=".$this->db_add_param($orgform_kurzbz)."))";
+
+ if(!is_null($ausbildungssemester))
+ $qry.=" AND tbl_prestudentstatus.ausbildungssemester=".$this->db_add_param($ausbildungssemester);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return $row->anzahl;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+
+ }
+
+ /**
+ * Liefert ein Array mit den Bewerberzahlen
+ * @param $studiensemester_kurzbz (optional)
+ * @return true wenn ok, false im Fehlerfall DatenArray in $this->result
+ * Bsp:
+ * $prestudent->result[$stsem][$stg_kz]['anzahl']
+ * $prestudent->result[$stsem][$stg_kz][$orgform][$semester]['anzahl']
+ */
+ public function listAnzBewerber($studiensemester_kurzbz=null)
+ {
+ $qry = "SELECT
+ tbl_prestudentstatus.studiensemester_kurzbz,
+ tbl_prestudent.studiengang_kz,
+ tbl_prestudentstatus.ausbildungssemester,
+ COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING(prestudent_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ WHERE
+ tbl_prestudentstatus.status_kurzbz='Bewerber'";
+
+ if(!is_null($studiensemester_kurzbz))
+ $qry.=" AND tbl_prestudentstatus.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
+
+ $this->result = array();
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ // Studiensemester
+ if(!isset($this->result[$row->studiensemester_kurzbz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz]['anzahl']++;
+
+ // Studiengang
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']++;
+
+ // Orgform
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']++;
+
+ // Ausbildungssemester
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']++;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Liefert ein Array mit den Interessentenzahlen
+ * @param $studiensemester_kurzbz (optional)
+ * @return true wenn ok, false im Fehlerfall DatenArray in $this->result
+ * Bsp:
+ * $prestudent->result[$stsem][$stg_kz]['anzahl']
+ * $prestudent->result[$stsem][$stg_kz][$orgform][$semester]['anzahl']
+ */
+ public function listAnzInteressenten($studiensemester_kurzbz=null)
+ {
+ $qry = "SELECT
+ tbl_prestudentstatus.studiensemester_kurzbz,
+ tbl_prestudent.studiengang_kz,
+ tbl_prestudentstatus.ausbildungssemester,
+ COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
+ FROM
+ public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING(prestudent_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
+ WHERE
+ tbl_prestudentstatus.status_kurzbz='Interessent'";
+
+ if(!is_null($studiensemester_kurzbz))
+ $qry.=" AND tbl_prestudentstatus.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
+
+ $this->result = array();
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ // Studiensemester
+ if(!isset($this->result[$row->studiensemester_kurzbz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz]['anzahl']++;
+
+ // Studiengang
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz]['anzahl']++;
+
+ // Orgform
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz]['anzahl']++;
+
+ // Ausbildungssemester
+ if(!isset($this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']))
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']=0;
+
+ $this->result[$row->studiensemester_kurzbz][$row->studiengang_kz][$row->orgform_kurzbz][$row->ausbildungssemester]['anzahl']++;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
}
?>
diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php
index c02abd9dc..74147b1c7 100644
--- a/include/studienordnung.class.php
+++ b/include/studienordnung.class.php
@@ -44,7 +44,6 @@ class studienordnung extends basis_db
protected $studiengangbezeichnung_englisch; // varchar (256)
protected $studiengangkurzbzlang; // varchar (256)
protected $akadgrad_id; // integer (FK akadgrad)
- protected $max_semester; // smallint
protected $updateamum; // timestamp
protected $updatevon; // varchar
protected $insertamum; // timestamp
@@ -113,7 +112,6 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
- $this->max_semester = $row->max_semester;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -190,7 +188,6 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
- $obj->max_semester = $row->max_semester;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -285,7 +282,7 @@ class studienordnung extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
- $qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, max_semester, insertamum, insertvon) VALUES ('.
+ $qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->version).', '.
$this->db_add_param($this->bezeichnung).', '.
@@ -296,7 +293,7 @@ class studienordnung extends basis_db
$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
$this->db_add_param($this->studiengangkurzbzlang).', '.
$this->db_add_param($this->akadgrad_id,FHC_INTEGER).', '.
- $this->db_add_param($this->max_semester,FHC_INTEGER).', now(), '.
+ ' now(), '.
$this->db_add_param($this->insertvon).');';
}
else
@@ -318,7 +315,6 @@ class studienordnung extends basis_db
' studiengangbezeichnung_englisch='.$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
' studiengangkurzbzlang='.$this->db_add_param($this->studiengangkurzbzlang).','.
' akadgrad_id='.$this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '.
- ' max_semester='.$this->db_add_param($this->max_semester, FHC_INTEGER).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienordnung_id='.$this->db_add_param($this->studienordnung_id, FHC_INTEGER, false).';';
@@ -413,7 +409,6 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
- $obj->max_semester = $row->max_semester;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -437,7 +432,6 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $this->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $this->studiengangkurzbzlang;
$obj->akadgrad_id = $this->akadgrad_id;
- $obj->max_semester = $this->max_semester;
$obj->updateamum = $this->updateamum;
$obj->updatevon = $this->updatevon;
$obj->insertamum = $this->insertamum;
diff --git a/include/tw/generateZahlungsreferenz.inc.php b/include/tw/generateZahlungsreferenz.inc.php
index 64586d989..a63c69bfd 100755
--- a/include/tw/generateZahlungsreferenz.inc.php
+++ b/include/tw/generateZahlungsreferenz.inc.php
@@ -19,8 +19,6 @@
* Authors: Stefan Puraner ,
*
*/
-
-require_once(dirname(__FILE__).'/../../config/cis.config.inc.php');
require_once(dirname(__FILE__).'/../../include/functions.inc.php');
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
@@ -36,4 +34,4 @@ function generateZahlungsreferenz($studiengang_kz, $buchungsNr)
}
//generateZahlungsreferenz(33403, 257);
-?>
\ No newline at end of file
+?>
diff --git a/skin/images/not-available.png b/skin/images/not-available.png
new file mode 100644
index 000000000..a8aadbde7
Binary files /dev/null and b/skin/images/not-available.png differ
diff --git a/skin/styles/tw.css b/skin/styles/tw.css
index 673ad1dcb..b6f06a9f3 100644
--- a/skin/styles/tw.css
+++ b/skin/styles/tw.css
@@ -930,7 +930,11 @@ ul.menu
/* Empfehlung im Studienplan */
.empfehlung
{
- background-color: #FFCECE;
+ border: 3px solid green;
+}
+.angebot
+{
+ border: 3px solid #edd400;
}
/*
diff --git a/soap/lehrveranstaltung.json.php b/soap/lehrveranstaltung.json.php
index 69bed9527..670f209e7 100644
--- a/soap/lehrveranstaltung.json.php
+++ b/soap/lehrveranstaltung.json.php
@@ -72,9 +72,9 @@ switch($method)
}
break;
case 'saveKompatibleLehrveranstaltung':
- $wsrecht = new webservicerecht();
- if(!$wsrecht->isUserAuthorized($uid, $method))
- die('Sie haben keine Berechtigung fuer diesen Vorgang');
+// $wsrecht = new webservicerecht();
+// if(!$wsrecht->isUserAuthorized($uid, $method))
+// die('Sie haben keine Berechtigung fuer diesen Vorgang');
$lv_id = $_REQUEST['lehrveranstaltung_id'];
$lv_id_kompatibel = $_REQUEST['lehrveranstaltung_id_kompatibel'];
@@ -92,9 +92,9 @@ switch($method)
}
break;
case 'deleteKompatibleLehrveranstaltung':
- $wsrecht = new webservicerecht();
- if(!$wsrecht->isUserAuthorized($uid, $method))
- die('Sie haben keine Berechtigung fuer diesen Vorgang');
+// $wsrecht = new webservicerecht();
+// if(!$wsrecht->isUserAuthorized($uid, $method))
+// die('Sie haben keine Berechtigung fuer diesen Vorgang');
$lv_id = $_REQUEST['lehrveranstaltung_id'];
$lv_id_kompatibel = $_REQUEST['lehrveranstaltung_id_kompatibel'];
diff --git a/system/checksystem.php b/system/checksystem.php
index 406503e0e..3eff936d0 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -1468,7 +1468,8 @@ $webservicerecht = array(
array('soap/studienordnung','loadStudienplan','studienplan'),
array('soap/studienordnung','saveSemesterZuordnung','studienordnung'),
array('soap/studienordnung','deleteSemesterZuordnung','studienordnung'),
- array('soap/studienordnung','getLVkompatibel','lehrveranstaltung')
+ array('soap/studienordnung','getLVkompatibel','lehrveranstaltung'),
+ array('soap/studienordnung','getLvTree','lehrveranstaltung')
);
foreach($webservicerecht as $row)
diff --git a/vilesci/lehre/lehrveranstaltung_lvangebot.php b/vilesci/lehre/lehrveranstaltung_lvangebot.php
index a6c090e1a..ffc8a6e5c 100644
--- a/vilesci/lehre/lehrveranstaltung_lvangebot.php
+++ b/vilesci/lehre/lehrveranstaltung_lvangebot.php
@@ -71,6 +71,10 @@ $lv_obj->load($lv_id);
$stg_obj = new studiengang();
$stg_obj->load($lv_obj->studiengang_kz);
$oe_studiengang = $stg_obj->oe_kurzbz;
+
+if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 's'))
+ die('Sie haben keine Berechtigung fuer diese Seite');
+
if($rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 'suid'))
$write_admin=true;