Abmeldung von Lehrveranstaltungen hinzugefügt

This commit is contained in:
Andreas Österreicher
2014-09-03 08:28:03 +00:00
parent 1889450314
commit 0336c39a81
6 changed files with 213 additions and 17 deletions
View File
+117
View File
@@ -0,0 +1,117 @@
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../config/global.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/lvangebot.class.php');
require_once('../../../include/benutzergruppe.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
if (!$user=get_uid())
die($p->t('global/nichtAngemeldet'));
echo '<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
</head>
<body>
<h1>'.$p->t('lehre/abmeldung').'</h1>';
if(!isset($_GET['lvid']) || !isset($_GET['stsem']))
{
die('Fehlerhafte Parameterübergabe');
}
$lvid = $_GET['lvid'];
$stsem = $_GET['stsem'];
$lvangebot = new lvangebot();
$gruppen = $lvangebot->AbmeldungMoeglich($lvid, $stsem, $user);
if(count($gruppen)>0)
{
if(isset($_POST['gruppe']))
{
$gruppe = $_POST['gruppe'];
if(in_array($gruppe, $gruppen))
{
$benutzergruppe = new benutzergruppe();
if($benutzergruppe->delete($user, $gruppe))
{
echo $p->t('lehre/AbmeldungErfolgreich');
// Menuebaum neu Laden damit die LV nicht mehr angezeigt wird
echo '<script>window.parent.menu.location.reload();</script>';
}
else
{
echo $benutzergruppe->errormsg;
}
}
else
{
echo $p->t('lehre/AbmeldungAusGruppeNichtMoeglich');
}
}
else
{
foreach($gruppen as $gruppe)
{
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load($lvid);
if(defined('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN)
{
$qry = "SELECT
lehrfach_id
FROM
lehre.tbl_lehreinheit
JOIN lehre.tbl_lehreinheitgruppe USING(lehreinheit_id)
WHERE
gruppe_kurzbz=".$db->db_add_param($gruppe)."
AND lehrveranstaltung_id=".$db->db_add_param($lvid)."
AND studiensemester_kurzbz=".$db->db_add_param($stsem);
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lehrveranstaltung->load($row->lehrfach_id);
}
}
}
echo '<form action="abmeldung.php?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">';
echo $p->t('lehre/confirmAbmeldung',array($lehrveranstaltung->bezeichnung));
echo '<input type="hidden" name="gruppe" value="'.$gruppe.'" />';
echo '<br><br><input type="Submit" value="Abmelden">';
echo '</form><br><br>';
}
}
}
echo '</body>
</html>';
+28 -17
View File
@@ -30,6 +30,7 @@ require_once('../../../include/studiengang.class.php');
require_once('../../../include/moodle.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/lehre_tools.class.php');
require_once('../../../include/lvangebot.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -141,17 +142,17 @@ if (isset($_GET["handbuch"])){
<td class="tdwidth10">&nbsp;</td>
<td style="vertical-align:top; height: 10px"><h1>
<?php
$stsem = new studiensemester();
if($studiensemester_kurzbz!='')
$angezeigtes_stsem=$studiensemester_kurzbz;
else
{
if($lv->studiengang_kz==0)
$angezeigtes_stsem = $stsem->getNearest();
else
$angezeigtes_stsem = $stsem->getNearest($semester);
$stsem = new studiensemester();
if($studiensemester_kurzbz!='')
$angezeigtes_stsem=$studiensemester_kurzbz;
else
{
if($lv->studiengang_kz==0)
$angezeigtes_stsem = $stsem->getNearest();
else
$angezeigtes_stsem = $stsem->getNearest($semester);
}
$lehrfach_id='';
if(defined('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN)
{
// Wenn der eingeloggte User zu einer der Lehreinheiten zugeteilt ist
@@ -165,7 +166,8 @@ if (isset($_GET["handbuch"])){
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
WHERE
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem)."
AND mitarbeiter_uid=".$db->db_add_param($user);
AND mitarbeiter_uid=".$db->db_add_param($user)."
AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
}
else
{
@@ -186,16 +188,19 @@ if (isset($_GET["handbuch"])){
{
if($row = $db->db_fetch_object($result))
{
$lehrfach = new lehrveranstaltung();
$lehrfach = new lehrveranstaltung();
$lehrfach->load($row->lehrfach_id);
echo $lehrfach->bezeichnung_arr[$sprache].' - '.$lv_obj->bezeichnung_arr[$sprache];
$lehrfach_id=$row->lehrfach_id;
if($lehrfach->bezeichnung_arr[$sprache]==$lv_obj->bezeichnung_arr[$sprache])
echo $lv_obj->bezeichnung_arr[$sprache];
else
echo $lehrfach->bezeichnung_arr[$sprache].' - '.$lv_obj->bezeichnung_arr[$sprache];
}
}
else
echo $lv_obj->bezeichnung_arr[$sprache];
}
}
}
else
echo $lv_obj->bezeichnung_arr[$sprache];
@@ -223,8 +228,14 @@ if (isset($_GET["handbuch"])){
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND
tbl_benutzer.aktiv=true AND tbl_person.aktiv=true AND
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem)."
ORDER BY uid, lvleiter desc) as a ORDER BY lvleiter desc, nachname, vorname";
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem);
// Wenn das Lehrfach angezeigt werden nur die Lektoren angezeigt die dieser
// Lehreinheit / Lehrfach zugeordnet sind
if($lehrfach_id!='')
$qry.=" AND tbl_lehreinheit.lehrfach_id=".$db->db_add_param($lehrfach_id);
$qry.=" ORDER BY uid, lvleiter desc) as a ORDER BY lvleiter desc, nachname, vorname";
if(!$result = $db->db_query($qry))
{
+41
View File
@@ -448,5 +448,46 @@ class lvangebot extends basis_db
return false;
}
}
/**
* Prueft ob eine Abmeldung von einer Lehrveranstaltung moeglich ist
* und liefert die Gruppen von denen sich abgemeldet werden kann
* @param $lehrveranstaltung_id
* @param $studiensemester_kurzbz
* @param $uid
* @return $gruppen Array mit den Gruppen
*/
public function AbmeldungMoeglich($lehrveranstaltung_id, $studiensemester_kurzbz, $uid)
{
$qry = "SELECT
gruppe_kurzbz
FROM
lehre.tbl_lvangebot
JOIN public.tbl_benutzergruppe USING(studiensemester_kurzbz, gruppe_kurzbz)
WHERE
tbl_lvangebot.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_benutzergruppe.uid=".$this->db_add_param($uid)."
AND (tbl_lvangebot.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
OR tbl_lvangebot.lehrveranstaltung_id IN(SELECT lehrveranstaltung_id_kompatibel
FROM lehre.tbl_lehrveranstaltung_kompatibel
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
)
)";
if($result = $this->db_query($qry))
{
$gruppen=array();
while($row = $this->db_fetch_object($result))
{
$gruppen[] = $row->gruppe_kurzbz;
}
return $gruppen;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+22
View File
@@ -693,6 +693,28 @@ function checkZeilenUmbruch()
echo '</td>';
}
checkZeilenUmbruch();
if(!defined('CIS_LEHRVERANSTALTUNG_ABMELDUNG_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_ABMELDUNG_ANZEIGEN)
{
if(!$is_lector)
{
$lvangebot = new lvangebot();
$gruppen = $lvangebot->AbmeldungMoeglich($lvid, $angezeigtes_stsem, $user);
if(count($gruppen)>0)
{
//Abmelden von der Lehrveranstaltung
$eintraegeprozeile++;
echo '<td class="tdvertical" align="center">';
echo '<a href="abmeldung.php?lvid='.$lvid.'&stsem='.$angezeigtes_stsem.'">';
echo '<img class="lv" src="../../../skin/images/button_studiupload.png"><br>';
echo "<b>".$p->t('lehre/abmelden')."</b></a><br>";
echo '</td>';
}
}
}
//Anzeigen von zusaetzlichen Lehre-Tools
$lehretools = new lehre_tools();
+5
View File
@@ -35,4 +35,9 @@ $this->phrasen['lehre/mail']='E-Mail an Studierende';
$this->phrasen['lehre/keinMailverteiler']='Für die Gruppe(n) %s existiert kein Verteiler! Die Studierenden in diesen Gruppen bekommen kein Mail.';
$this->phrasen['lehre/pinboard']='Pinboard';
$this->phrasen['lehre/abmelden']='Abmelden';
$this->phrasen['lehre/abmeldung']='Abmeldung';
$this->phrasen['lehre/AbmeldungErfolgreich']='Sie wurden erfolgreich von der Lehrveranstaltung abgemeldet';
$this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']='Sie können sich nicht von dieser Lehrveranstaltung abmelden';
$this->phrasen['lehre/confirmAbmeldung']='Wollen Sie sich wirklich von der Lehrveranstaltung "%s" abmelden?';
?>