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.="
"; -$outp.=" Studiengang "; +$outp .= ""; $stg_berechtigt = $rechte->getStgKz('lehre/lehrveranstaltung:begrenzt'); foreach ($studiengang as $stg) @@ -570,23 +619,24 @@ foreach ($orgform->result as $of) $outp.=''; //Institut DropDown -$outp.= ' Institut '; +//auskommentiert: user story #12646 +// $outp.= ' Institut '; //if($write_admin) Von kindlm am 12.04.2013 auskommentiert, da Assistentinnen auch bei inaktiven LV's die Lehrform aendern koennen sollen //{ @@ -596,37 +646,44 @@ $outp.= ''; $outp.= ""; $outp.= ""; $outp.= ''; + + $outp.= ''; //} /*else { $isaktiv='aktiv'; }*/ + +$outp .= '
Erweiterte Suchoptionen
'; + //Organisationseinheit Dropdown - $outp.= '
Organisationseinheit '; + $oe = new organisationseinheit(); $oe->getAll(); foreach($oe->result as $row) { - if($oe_kurzbz==$row->oe_kurzbz) - $selected='selected'; - else - $selected=''; - $outp.= ''; + if($oe_kurzbz == $row->oe_kurzbz) + $selected = 'selected'; + else + $selected = ''; + $outp .= ''; } - $outp.= ''; - + $outp .= ''; + //Lehrveranstaltung ID Input $outp.= ' ID '; - + //Lehrveranstaltung Suche Bezeichnung - $outp.= ' Name '; - $outp.= ' '; + $outp.= ' '; + $outp.= '
'; $outp.= '
'; + echo ' @@ -669,35 +726,37 @@ echo ' +