diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index e658d7a97..b9ff39a9d 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -4767,6 +4767,61 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
+// Add Table lehre.tbl_lehrmodus
+if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrmodus LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE lehre.tbl_lehrmodus
+ (
+ lehrmodus_kurzbz varchar(32) NOT NULL,
+ bezeichnung_mehrsprachig varchar(255)[],
+ aktiv boolean DEFAULT true
+ );
+
+ ALTER TABLE lehre.tbl_lehrmodus ADD CONSTRAINT pk_lehrmodus PRIMARY KEY (lehrmodus_kurzbz);
+
+ INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('regulaer', '{\"regulaer\",\"regular\"}');
+ INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('standardisiert', '{\"standardisiert\",\"standardized\"}');
+
+ GRANT SELECT ON lehre.tbl_lehrmodus TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lehrmodus TO vilesci;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_lehrmodus: '.$db->db_last_error().'
';
+ else
+ echo ' lehre.tbl_lehrmodus: Tabelle hinzugefuegt
';
+}
+
+//Add Column lehrmodus_kurzbz to lehre.tbl_lehrveranstaltung
+if(!@$db->db_query("SELECT lehrmodus_kurzbz FROM lehre.tbl_lehrveranstaltung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrmodus_kurzbz varchar(32);
+ ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_lehrmodus FOREIGN KEY (lehrmodus_kurzbz) REFERENCES lehre.tbl_lehrmodus(lehrmodus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_lehrveranstaltung '.$db->db_last_error().'
';
+ else
+ echo '
Spalte lehrmodus_kurzbz in lehre.tbl_lehrveranstaltung hinzugefügt';
+}
+
+
+//Add Column lehrmodus_kurzbz to addon.tbl_lvevaluierung_frage
+if(!@$db->db_query("SELECT lehrmodus_kurzbz FROM addon.tbl_lvevaluierung_frage LIMIT 1"))
+{
+ $qry = "ALTER TABLE addon.tbl_lvevaluierung_frage ADD COLUMN lehrmodus_kurzbz varchar(32);
+ ALTER TABLE addon.tbl_lvevaluierung_frage ADD CONSTRAINT fk_lvevaluierung_lehrmodus
+ FOREIGN KEY (lehrmodus_kurzbz) REFERENCES lehre.tbl_lehrmodus(lehrmodus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'addon.tbl_lvevaluierung_frage '.$db->db_last_error().'
';
+ else
+ echo '
Spalte lehrmodus_kurzbz in addon.tbl_lvevaluierung_frage hinzugefügt';
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '
Pruefe Tabellen und Attribute!
';
diff --git a/vilesci/lehre/lehrveranstaltung.php b/vilesci/lehre/lehrveranstaltung.php
index 1011b6d00..9f53ea52e 100644
--- a/vilesci/lehre/lehrveranstaltung.php
+++ b/vilesci/lehre/lehrveranstaltung.php
@@ -25,11 +25,11 @@ require_once('../../include/studiengang.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/fachbereich.class.php');
+require_once('../../include/organisationseinheit.class.php');
require_once('../../include/lvinfo.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/organisationsform.class.php');
require_once('../../include/addon.class.php');
-
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -64,6 +64,8 @@ if(!is_numeric($stg_kz) && $stg_kz!='')
if(!is_numeric($semester))
$semester = -1;
+
+
$oe_fachbereich='';
if(isset($_REQUEST['fachbereich_kurzbz']))
{
@@ -79,9 +81,18 @@ if(isset($_REQUEST['fachbereich_kurzbz']))
else
$fachbereich_kurzbz = '';
+
+$oe_organisationseinheit='';
if (isset($_REQUEST['oe_kurzbz']))
{
$oe_kurzbz = $_REQUEST['oe_kurzbz'];
+ if($oe_kurzbz != '')
+ {
+ $oe_obj = new organisationseinheit();
+ if(!$oe_obj->load($oe_kurzbz))
+ die('Organisationseinheit konnte nicht geladen werden');
+ $oe_organisationseinheit = $oe_obj->oe_kurzbz;
+ }
}
else
$oe_kurzbz='';
@@ -163,7 +174,7 @@ if(isset($_GET['delete_lvid']))
}
}
else
- echo "Keine Berechtigung, um Lehrveranstaltung zu löschen!\n";
+ echo " Keine Berechtigung, um Lehrveranstaltung zu löschen!\n";
}
// Speichern der Daten
@@ -318,7 +329,7 @@ if(isset($_POST['lvid']) && is_numeric($_POST['lvid']))
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_POST['lvid']))
{
- $lv_obj->lehrform_kurzbz=$_POST['lf'];
+ $lv_obj->lehrform_kurzbz = $_POST['lf'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
@@ -336,7 +347,25 @@ if(isset($_POST['lvid']) && is_numeric($_POST['lvid']))
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_POST['lvid']))
{
- $lv_obj->lehrtyp_kurzbz=$_POST['lt'];
+ $lv_obj->lehrtyp_kurzbz = $_POST['lt'];
+ $lv_obj->updateamum = date('Y-m-d H:i:s');
+ $lv_obj->updatevon = $user;
+ if($lv_obj->save(false))
+ exit('true');
+ else
+ exit('Fehler beim Speichern:'.$lv_obj->errormsg);
+ }
+ else
+ exit('Fehler beim Laden der LV:'.$lv_obj->errormsg);
+ }
+
+ //Lehrmodus Speichern
+ if(isset($_POST['lm']))
+ {
+ $lv_obj = new lehrveranstaltung();
+ if($lv_obj->load($_POST['lvid']))
+ {
+ $lv_obj->lehrmodus_kurzbz = $_POST['lm'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
@@ -408,6 +437,24 @@ if($result = $db->db_query($qry))
}
}
+//Lehrmodus holen
+$qry = "
+SELECT
+ lehrmodus_kurzbz,
+ bezeichnung_mehrsprachig
+FROM
+ lehre.tbl_lehrmodus ORDER BY lehrmodus_kurzbz";
+
+$lm = array();
+if($result = $db->db_query($qry))
+{
+ while($row = $db->db_fetch_object($result))
+ {
+ $lm[$row->lehrmodus_kurzbz]['lehrmodus_kurzbz']=$row->lehrmodus_kurzbz;
+ }
+}
+
+
//Fachbereichskoordinatoren holen
$fb_kurzbz='';
if($stg_kz!='')
@@ -456,14 +503,50 @@ if($result = $db->db_query($qry))
}
}
-//Lehrveranstaltungen holen
+//Lehrveranstaltungen mit OEs holen
+$sql_query = "
+ SELECT
+ tbl_lehrveranstaltung.*, tbl_organisationseinheit.organisationseinheittyp_kurzbz,
+ tbl_organisationseinheit.bezeichnung as oe_bezeichnung
+ FROM
+ lehre.tbl_lehrveranstaltung
+ LEFT JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
+ LEFT JOIN lehre.tbl_lehrveranstaltung as lehrfach on (lehre.tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id)
+ LEFT JOIN public.tbl_organisationseinheit ON (public.tbl_organisationseinheit.oe_kurzbz = lehre.tbl_lehrveranstaltung.oe_kurzbz)
+ where
+ true
+";
+
+if($stg_kz!='')
+ $sql_query.= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER);
+
+if($oe_kurzbz!='')
+ $sql_query.= " AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
+
+if($semester != -1)
+ $sql_query.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER);
+
+if($orgform_kurzbz != -1)
+ if($orgform_kurzbz == 'none')
+ $sql_query.=" AND (tbl_lehrveranstaltung.orgform_kurzbz IS NULL OR tbl_lehrveranstaltung.orgform_kurzbz='')";
+ else
+ $sql_query.=" AND tbl_lehrveranstaltung.orgform_kurzbz=".$db->db_add_param($orgform_kurzbz, FHC_STRING);
+
+if($lehrveranstaltung_id != '')
+ $sql_query.= " AND tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
+
+if($lehrveranstaltung_name != '')
+{
+ $sql_query.= " AND (UPPER(tbl_lehrveranstaltung.bezeichnung) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_name.'%', FHC_STRING).")";
+ $sql_query.= " OR UPPER(tbl_lehrveranstaltung.bezeichnung_english) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_name.'%', FHC_STRING).")) ";
+}
//Wenn nicht admin, werden erst nur die aktiven angezeigt, es koennen aber auch die inaktiven eingeblendet werden
-$aktiv='';
-$isaktiv=trim($isaktiv);
+$aktiv = '';
+$isaktiv = trim($isaktiv);
-if($isaktiv=='true')
+if($isaktiv == 'true')
{
$aktiv = ' AND tbl_lehrveranstaltung.aktiv=true';
}
@@ -476,43 +559,9 @@ else
$aktiv='';
}
-if($fb_kurzbz !='')
- $sql_query="
- SELECT
- distinct tbl_lehrveranstaltung.*
- FROM
- lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_fachbereich
- WHERE
- tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
- AND tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id
- AND lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz
- AND tbl_fachbereich.fachbereich_kurzbz=".$db->db_add_param($fb_kurzbz);
-else
- $sql_query="SELECT * FROM lehre.tbl_lehrveranstaltung WHERE true";
+$sql_query .= " GROUP BY tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_organisationseinheit.organisationseinheittyp_kurzbz, tbl_organisationseinheit.bezeichnung";
-if($stg_kz!='')
- $sql_query.= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER);
-//if($oe_kurzbz!='')
-// $sql_query.= " AND tbl_lehrveranstaltung.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
-if($semester != -1)
- $sql_query.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER);
-
-if($orgform_kurzbz != -1)
- if($orgform_kurzbz == 'none')
- $sql_query.=" AND (tbl_lehrveranstaltung.orgform_kurzbz IS NULL OR tbl_lehrveranstaltung.orgform_kurzbz='')";
- else
- $sql_query.=" AND tbl_lehrveranstaltung.orgform_kurzbz=".$db->db_add_param($orgform_kurzbz, FHC_STRING);
-
-if($lehrveranstaltung_id != '')
- $sql_query.= " AND tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
-
-if($lehrveranstaltung_name != '')
-{
- $sql_query.= " AND (UPPER(tbl_lehrveranstaltung.bezeichnung) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_name.'%', FHC_STRING).")";
- $sql_query.= " OR UPPER(tbl_lehrveranstaltung.bezeichnung_english) LIKE UPPER(".$db->db_add_param('%'.$lehrveranstaltung_name.'%', FHC_STRING).")) ";
-}
-
-$sql_query.=" $aktiv ORDER BY tbl_lehrveranstaltung.bezeichnung";
+$sql_query .= " ORDER BY tbl_lehrveranstaltung.bezeichnung";
if($fb_kurzbz=='' && $stg_kz=='' && $semester=='0' && $oe_kurzbz=='')
$result_lv='';
@@ -523,11 +572,11 @@ else
}
//Studiengang DropDown
-$outp='';
-$s=array();
-$outp.="';
+
echo '
@@ -669,35 +726,37 @@ echo '
+