From 9da527eebccda3ec6c06d7499d05b43e35fb9881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Mar 2007 16:01:23 +0000 Subject: [PATCH] =?UTF-8?q?-=20QM=20Dokumente=20aktualisiert=20-=20Kreuzer?= =?UTF-8?q?ltool=20Anweseheitsliste=20enthaelt=20nun=20auch=20die=20gruppe?= =?UTF-8?q?=20-=20log.class.php=20erstellt=20f=C3=BCr=20LOG=20und=20UNDO?= =?UTF-8?q?=20Eintr=C3=A4ge=20-=20RDF=20f=C3=BCr=20UNDO=20Befehle=20erstel?= =?UTF-8?q?lt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehre/kreuzerltool/anwesenheitsliste.php | 29 ++- cis/public/info/jahresplan_SS2007.html | 2 + include/log.class.php | 231 ++++++++++++++++++ rdf/undo.rdf.php | 67 +++++ 4 files changed, 321 insertions(+), 8 deletions(-) create mode 100644 include/log.class.php create mode 100644 rdf/undo.rdf.php diff --git a/cis/private/lehre/kreuzerltool/anwesenheitsliste.php b/cis/private/lehre/kreuzerltool/anwesenheitsliste.php index 2124c33bc..3652e2e8d 100644 --- a/cis/private/lehre/kreuzerltool/anwesenheitsliste.php +++ b/cis/private/lehre/kreuzerltool/anwesenheitsliste.php @@ -128,6 +128,8 @@ if(isset($_GET['output']) && $_GET['output']=='xls') $maxlength[$i]=strlen('Nachname'); $worksheet->write(1,++$i,"Matrikelnr", $format_title); $maxlength[$i]=strlen('Matrikelnr'); + $worksheet->write(1,++$i,"Gruppe", $format_title); + $maxlength[$i]=strlen('Gruppe'); $ueb_obj = new uebung($conn); $ueb_obj->load_uebung($lehreinheit_id); foreach($ueb_obj->uebungen as $row_ueb) @@ -182,12 +184,12 @@ if(isset($_GET['output']) && $_GET['output']=='xls') $lehreinheit_id = $_GET['lehreinheit_id']; $gruppe_bez = 'Alle Studienrende'; //Alle Studenten die dieser Lehreinheit zugeordnet sind - $qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe + $qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND vw_student.uid = tbl_benutzergruppe.uid AND tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz UNION - SELECT vw_student.uid, vorname, nachname, matrikelnr FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE + SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND tbl_lehreinheitgruppe.studiengang_kz=vw_student.studiengang_kz AND tbl_lehreinheitgruppe.semester = vw_student.semester AND @@ -227,8 +229,12 @@ if(isset($_GET['output']) && $_GET['output']=='xls') //matrikelnr $worksheet->write($zeile,++$spalte,'="'.$row_stud->matrikelnr.'"'); if(strlen($row_stud->matrikelnr)>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($row_stud->matrikelnr); - + $maxlength[$spalte]=strlen($row_stud->matrikelnr); + //Gruppe + $worksheet->write($zeile,++$spalte,$row_stud->semester.$row_stud->verband.$row_stud->gruppe); + if(strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe)>$maxlength[$spalte]) + $maxlength[$spalte]=strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe); + foreach($ueb_obj->uebungen as $row_ueb) { $qry = "SELECT sum(punkte) as punkte FROM campus.tbl_studentbeispiel JOIN campus.tbl_beispiel USING(beispiel_id) WHERE uebung_id='$row_ueb->uebung_id' AND student_uid='$row_stud->uid' AND vorbereitet=true"; @@ -307,6 +313,8 @@ if(isset($_GET['output']) && $_GET['output']=='xls') $maxlength[$i]=strlen('Nachname'); $worksheet->write(1,++$i,"Matrikelnr", $format_title); $maxlength[$i]=strlen('Matrikelnr'); + $worksheet->write(1,++$i,"Gruppe", $format_title); + $maxlength[$i]=strlen('Gruppe'); $beispiel_obj = new beispiel($conn); $beispiel_obj->load_beispiel($uebung_id); foreach($beispiel_obj->beispiele as $row_bsp) @@ -336,12 +344,12 @@ if(isset($_GET['output']) && $_GET['output']=='xls') if($row->gruppe_kurzbz!='') { $gruppe_bez = 'Gruppe '.$row->gruppe_kurzbz; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."' ORDER BY nachname, vorname"; + $qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."' ORDER BY nachname, vorname"; } else { $gruppe_bez = 'Gruppe '.$row->verband.$row->gruppe; - $qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student + $qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student WHERE studiengang_kz='$row->studiengang_kz' AND semester='$row->semester' ". ($row->verband!=''?" AND verband='$row->verband'":''). @@ -366,12 +374,12 @@ if(isset($_GET['output']) && $_GET['output']=='xls') $lehreinheit_id = $_GET['lehreinheit_id']; $gruppe_bez = 'Alle Studienrende'; //Alle Studenten die dieser Lehreinheit zugeordnet sind - $qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe + $qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND vw_student.uid = tbl_benutzergruppe.uid AND tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz UNION - SELECT vw_student.uid, vorname, nachname, matrikelnr FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE + SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND tbl_lehreinheitgruppe.studiengang_kz=vw_student.studiengang_kz AND tbl_lehreinheitgruppe.semester = vw_student.semester AND @@ -413,6 +421,11 @@ if(isset($_GET['output']) && $_GET['output']=='xls') if(strlen($row_stud->matrikelnr)>$maxlength[$spalte]) $maxlength[$spalte]=strlen($row_stud->matrikelnr); + //Gruppe + $worksheet->write($zeile,++$spalte,$row_stud->semester.$row_stud->verband.$row_stud->gruppe); + if(strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe)>$maxlength[$spalte]) + $maxlength[$spalte]=strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe); + foreach($beispiel_obj->beispiele as $row_bsp) { $studentbeispiel_obj = new beispiel($conn); diff --git a/cis/public/info/jahresplan_SS2007.html b/cis/public/info/jahresplan_SS2007.html index c35b145a8..5527fa6a8 100644 --- a/cis/public/info/jahresplan_SS2007.html +++ b/cis/public/info/jahresplan_SS2007.html @@ -215,6 +215,7 @@ function hideWMTT() { 22.06. BST, DST
+ 23.06. DVT
28.06. MSE @@ -385,6 +386,7 @@ function hideWMTT() {  21.06. Reihungstest BIT  22.06. Diplomprüfung DVT  22.06. Sponsion BST, DST +  23.06. Sponsion DVT KW 2625.06. Reihungstest BEL  26.06. Reihungstest BEL  26.06. Bachelorprüfung BIF diff --git a/include/log.class.php b/include/log.class.php new file mode 100644 index 000000000..3c374dc4a --- /dev/null +++ b/include/log.class.php @@ -0,0 +1,231 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class log +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $logs = array(); // lehreinheit Objekt + + //Tabellenspalten + var $log_id; // Serial + var $executetime; // timestamp + var $sql; // text + var $sqlundo; // text + var $beschreibung; // varchar(64) + var $mitarbeiter_uid; // varchar(16) + + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional einen DS + // * @param $conn Datenbank-Connection + // * $log_id + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function log($conn, $log_id=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode!=null) + { + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + } + + if($log_id!=null) + $this->load($log_id); + } + + // ********************************************************* + // * Laedt einen Log Eintrag + // * @param log_id + // ********************************************************* + function load($log_id) + { + if(!is_numeric($log_id)) + { + $this->errormsg='Log_id muss eine gueltige Zahl sein'; + return false; + } + $qry = "SELECT * FROM public.tbl_log WHERE log_id='$log_id'"; + + if($result=pg_query($this->conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $this->log_id = $row->log_id; + $this->executetime = $row->executetime; + $this->mitarbeiter_uid = $row->mitarbeiter_uid; + $this->beschreibung = $row->beschreibung; + $this->sql = $row->sql; + $this->sqlundo = $row->sqlundo; + return true; + } + else + { + $this->errormsg = "Es ist kein Log Eintrag mit der ID $log_id vorhanden"; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim laden des Log Eintrages'; + return false; + } + } + + // ******************************************** + // * Laedt die letzten 10 Undo Eintraege + // * @param $uid UID des Mitarbeiters dessen + // * UNDO befehle geladen werden sollen + // * @return true wenn ok , false im Fehlerfall + // ******************************************** + function load_undo($uid) + { + $qry = "SELECT * FROM public.tbl_log WHERE mitarbeiter_uid='".addslashes($uid)."' AND sqlundo is not null LIMIT 10"; + + if($result=pg_query($this->conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $log_obj = new log($this->conn, null, null); + + $log_obj->log_id = $row->log_id; + $log_obj->executetime = $row->executetime; + $log_obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $log_obj->beschreibung = $row->beschreibung; + $log_obj->sql = $row->sql; + $log_obj->sqlundo = $row->sqlundo; + + $this->logs[] = $log_obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim laden der Log-Eintraege'; + return false; + } + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert einen Log Eintrag in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz aktualisiert + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + $qry = 'INSERT INTO public.tbl_log(executetime, mitarbeiter_uid, beschreibung, sql, sqlundo) VALUES(now(),'. + $this->addslashes($this->mitarbeiter_uid).','. + $this->addslashes($this->beschreibung).','. + $this->addslashes($this->sql).','. + $this->addslashes($this->sqlundo).');'; + } + else + { + $qry = 'UPDATE public.tbl_log SET'. + ' executetime='.$this->addslashes($this->executetime).','. + ' mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).','. + ' beschreibung='.$this->addslashes($this->beschreibung).','. + ' sql='.$this->addslashes($this->sql).','. + ' sqlundo='.$this->addslashes($this->sqlundo). + " WHERE log_id=".$this->addslashes($this->log_id).";"; + } + + if(pg_query($this->conn,$qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Beispiels'; + return false; + } + } + + + // ********************************** + // * Loescht einen Log Eintrag + // * @param $log_id ID des DS + // * @return true wenn ok sonst false + // ********************************** + function delete($log_id) + { + if(!is_numeric($log_id)) + { + $this->errormsg = 'Log_id ist ungueltig'; + return false; + } + + $qry = "DELETE FROM public.tbl_log WHERE log_id='$log_id'"; + + if(pg_query($this->conn, $qry)) + return true; + else + { + $this->errormsg = 'Fehler beim loeschen des LOG Eintrages'; + return false; + } + } +} +?> \ No newline at end of file diff --git a/rdf/undo.rdf.php b/rdf/undo.rdf.php new file mode 100644 index 000000000..160df322b --- /dev/null +++ b/rdf/undo.rdf.php @@ -0,0 +1,67 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +// header für no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/vnd.mozilla.xul+xml"); +// xml +echo ''; +// DAO +require_once('../vilesci/config.inc.php'); +require_once('../include/log.class.php'); +require_once('../include/functions.inc.php'); + +// Datenbank Verbindung +if (!$conn = @pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$log = new log($conn, null, true); +$log->load_undo(get_uid()); + +$rdf_url='http://www.technikum-wien.at/undo'; +?> + + + + + +logs as $row) +{ + ?> + + + log_id ?> + beschreibung ?>]]> + + + + + \ No newline at end of file