From 9fc6e781d21e7a6261a2613d92d4061939590c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 17 Dec 2008 16:17:50 +0000 Subject: [PATCH] =?UTF-8?q?Studenten=20im=20Kollisionscheck=20k=C3=B6nnen?= =?UTF-8?q?=20jetzt=20auf=20einen=20Studiengang=20beschr=C3=A4nkt=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/ExtendUidInDatabase.php | 2 + vilesci/lehre/stpl_benutzer_kollision.php | 51 +++++++++++++++++++---- 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/system/ExtendUidInDatabase.php b/system/ExtendUidInDatabase.php index a76e1d03b..a50a2d09f 100644 --- a/system/ExtendUidInDatabase.php +++ b/system/ExtendUidInDatabase.php @@ -144,6 +144,8 @@ if($result = pg_query($conn, $qry)) Grant select on vw_studiensemester to group "admin"; Grant select on public.vw_benutzerfunktion to group "admin"; Grant select on public.vw_prestudent to group "admin"; + GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO GROUP web; + GRANT SELECT ON lehre.vw_stundenplandev_student_unr TO GROUP admin; '; echo $qry; pg_query($conn, $qry); diff --git a/vilesci/lehre/stpl_benutzer_kollision.php b/vilesci/lehre/stpl_benutzer_kollision.php index 51feae626..ad6464eea 100644 --- a/vilesci/lehre/stpl_benutzer_kollision.php +++ b/vilesci/lehre/stpl_benutzer_kollision.php @@ -19,16 +19,20 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ - +/* + * Fuehrt eine Kollisionspruefung im Stundenplan auf Studentenebene durch + */ require_once('../config.inc.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); if(!$conn = pg_pconnect(CONN_STRING)) die('Fehler beim Herstellen der Datenbankverbindung'); $beginn = (isset($_GET['beginn'])?$_GET['beginn']:''); $ende = (isset($_GET['ende'])?$_GET['ende']:''); +$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:''); $dontloadcontent=false; $user = get_uid(); @@ -85,6 +89,21 @@ echo ''; echo " Beginn "; echo " Ende "; +$stg = new studiengang($conn); +$stg->getAll('typ, kurzbzlang', true); +echo ' Studiengang '; + echo " "; echo ''; @@ -92,14 +111,26 @@ echo ''; if($dontloadcontent) exit; -$qry = "SELECT datum, stunde, student_uid, count(student_uid) AS anzahl - FROM lehre.vw_".$db_stpl_table."_student_unr - WHERE datum>='$beginn' AND datum<='$ende' - GROUP BY datum, stunde, student_uid - HAVING count(student_uid)>1 - ORDER BY datum, stunde, student_uid LIMIT 30; - "; - +if($stg_kz=='') +{ + $qry = "SELECT datum, stunde, student_uid, count(student_uid) AS anzahl + FROM lehre.vw_".$db_stpl_table."_student_unr + WHERE datum>='$beginn' AND datum<='$ende' + GROUP BY datum, stunde, student_uid + HAVING count(student_uid)>1 + ORDER BY datum, stunde, student_uid LIMIT 30; + "; +} +else +{ + $qry = "SELECT datum, stunde, student_uid, count(student_uid) AS anzahl + FROM lehre.vw_".$db_stpl_table."_student_unr JOIN public.tbl_student USING(student_uid) + WHERE datum>='$beginn' AND datum<='$ende' AND studiengang_kz='$stg_kz' + GROUP BY datum, stunde, student_uid + HAVING count(student_uid)>1 + ORDER BY datum, stunde, student_uid LIMIT 30; + "; +} //echo $qry; echo ''; @@ -129,5 +160,7 @@ if($result = pg_query($conn, $qry)) } echo '
'; +if(pg_num_rows($result)>=30) + echo 'Info: Es werden nur die ersten 30 Einträge angezeigt!'; echo ' \ No newline at end of file