cis/private/profile/studienplan.php added an option to choose between prestudents

This commit is contained in:
Andreas Moik
2016-06-10 11:51:10 +02:00
parent b41122e174
commit bcf57fcbf2
10 changed files with 813 additions and 700 deletions
+2 -2
View File
@@ -42,6 +42,7 @@ $getuid=get_uid();
$uid=$getuid;
$vorname='';
$nachname='';
$htmlstr = '';
if(isset($_GET['uid']))
{
@@ -54,7 +55,6 @@ if(isset($_GET['uid']))
$prestudent->getPrestudentsFromUid($uid);
$htmlstr = '';
$htmlstr .= "<form name='formular'><input type='hidden' name='check' value=''></form><table id='t1' class='tablesorter'>\n";
$htmlstr .= "<thead><tr>\n";
@@ -170,8 +170,8 @@ if(isset($_GET['uid']))
}
}
}
$htmlstr .= "</tbody></table>\n";
}
$htmlstr .= "</tbody></table>\n";
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+30 -21
View File
@@ -29,6 +29,7 @@
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/prestudent.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/mail.class.php');
@@ -111,26 +112,27 @@ $person = new person();
$person->load($bid);
$betreuer = $person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost;
//Rechte Pruefen
$allowed=false;
if($uid!=$user)
{
$student = new student(); // TODO EINE
if(!$student->load($uid))
die($p->t('global/userNichtGefunden'));
$stg_obj = new studiengang();
if(!$stg_obj->load($student->studiengang_kz))
$prestudent = new prestudent();
if(!$prestudent->getPrestudentsFromUid($uid))
die($p->t('global/fehlerBeimLesenAusDatenbank'));
//Studentenansicht
//Rechte Pruefen
$allowed=false;
//Berechtigung ueber das Berechtigungssystem
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz, 's'))
$allowed=true;
foreach($prestudent->result as $ps)
{
$stg_obj = new studiengang();
if(!$stg_obj->load($ps->studiengang_kz))
die($p->t('global/fehlerBeimLesenAusDatenbank'));
if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz, 's'))
$allowed=true;
}
//oder Lektor mit Betreuung dieses Studenten
$qry = "SELECT 1
@@ -138,8 +140,9 @@ if($uid!=$user)
lehre.tbl_projektarbeit
JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id)
JOIN tbl_prestudent USING(prestudent_id)
WHERE
tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND
tbl_prestudent.uid=".$db->db_add_param($uid)." AND
vw_benutzer.uid=".$db->db_add_param($user).";";
if($result = $db->db_query($qry))
@@ -150,17 +153,23 @@ if($uid!=$user)
}
}
if(!$allowed)
{
die($p->t('abgabetool/keineBerechtigungStudentenansicht'));
}
}
}
else
{
$student = new student($uid); // TODO EINE
$ps = new prestudent();
$ps->getPrestudentsFromUid($uid);
foreach($ps->result as $p)
{
if($student->prestudent_id === $projektarbeit_obj->prestudent_id)
$allowed = true;
}
}
if($student->prestudent_id!=$projektarbeit_obj->prestudent_id)
die('Sie haben keine Berechtigung fuer diese Seite');
if(!$allowed)
{
die($p->t('abgabetool/keineBerechtigungStudentenansicht'));
}
echo '<!DOCTYPE HTML>
+196 -148
View File
@@ -32,7 +32,7 @@ require_once('../../../include/studiensemester.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/note.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/prestudent.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/pruefung.class.php');
@@ -86,6 +86,14 @@ else
$user = get_uid();
$prestudent_id = null;
if(isset($_GET['prestudent_id']))
{
$prestudent_id = $_GET['prestudent_id'];
}
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Notenliste
@@ -146,168 +154,208 @@ else
$stsem_obj->getAll();
echo "<br />";
echo "<b>".$p->t('global/name').":</b> $vorname $nachname<br />";
echo "<b>".$p->t('global/studiengang').":</b> $stg_name<br />";
echo "<b>".$p->t('global/studiensemester')."</b> <SELECT name='stsem' onChange=\"MM_jumpMenu('self',this,0)\">";
echo "<OPTION value='notenliste.php?stsem=alle".$getParam."'>alle Semester</OPTION>";
foreach ($stsem_obj->studiensemester as $semrow)
$prestudent = new prestudent();
$prestudent->getPrestudentsFromUid($user);
if(count($prestudent->result) > 0)
{
echo "<div class='contentBox'>";
echo "<span>".$p->t('global/studiengang')."</span>";
echo "<SELECT name='stg' onChange=\"MM_jumpMenu('self',this,0)\">";
echo "<option disabled ".($prestudent_id ? "" : "selected")." value>".$p->t('global/auswaehlen')."</option>";
foreach ($prestudent->result as $pres)
{
if($stsem == $semrow->studiensemester_kurzbz)
echo "<OPTION value='notenliste.php?stsem=".$semrow->studiensemester_kurzbz.$getParam."' selected>$semrow->studiensemester_kurzbz</OPTION>";
else
echo "<OPTION value='notenliste.php?stsem=".$semrow->studiensemester_kurzbz.$getParam."'>$semrow->studiensemester_kurzbz</OPTION>";
$studiengang = new studiengang($pres->studiengang_kz);
echo "<OPTION ".(isset($prestudent_id) && $prestudent_id == $pres->prestudent_id ? "selected" : "")." value='notenliste.php?prestudent_id=$pres->prestudent_id'>$studiengang->bezeichnung</OPTION>";
}
echo "</SELECT><br />";
echo "</SELECT>";
//echo "Datum: ".date('d.m.Y')."<br />";
echo "<br />";
//Lehrveranstaltungen und Noten holen
if($stsem != "alle")
{
$sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) ";
}
else
$sqlFilter = "";
$student = new student($user); // TODO EINE
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum,
tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum
FROM
lehre.tbl_lehrveranstaltung, lehre.tbl_zeugnisnote
LEFT OUTER JOIN
campus.tbl_lvgesamtnote
USING (lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
WHERE
tbl_zeugnisnote.prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)
.$sqlFilter."
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id
ORDER BY bezeichnung";
if($result=$db->db_query($qry))
if(isset($prestudent_id))
{
//Tabelle anzeigen
$tbl= "<table class='tablesorter' id='notenliste' style='width: auto;'>
<thead>
<tr class='liste'>
<th>".$p->t('global/lehrveranstaltung')."</th>
<th>".$p->t('benotungstool/lvNote')."</th>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$tbl.="<th>".$p->t('benotungstool/punkte')."</th>";
$tbl.=" <th>".$p->t('benotungstool/zeugnisnote')."</th>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$tbl.="<th>".$p->t('benotungstool/punkte')."</th>";
$tbl.="
<th>".$p->t('tools/benotungsdatumDerZeugnisnote')."</th>
<th>".$p->t('benotungstool/pruefung')."</th>
</tr>
</thead>
<tbody>";
$i=0;
$legende = false;
while($row=$db->db_fetch_object($result))
$semester = array();
$prestudent->result = array();
$prestudent->getPrestudentRolle($prestudent_id);
foreach($prestudent->result as $rolle)
{
$lv_obj = new lehrveranstaltung();
$lv_obj->load($row->lehrveranstaltung_id);
$i++;
$tbl.= "<tr class='liste".($i%2)."'><td>".$lv_obj->bezeichnung_arr[$sprache].($lv_obj->lehrform_kurzbz!="" && $lv_obj->lehrform_kurzbz!=" - "?" (".$lv_obj->lehrform_kurzbz.")":"")."</td>";
$tbl.= "<td>";
//Nur freigegebene Noten anzeigen
if($row->freigabedatum>=$row->lvbenotungsdatum)
if($rolle->status_kurzbz == "Student" || $rolle->status_kurzbz == "Absolvent" || $rolle->status_kurzbz == "Diplomand")
{
if(isset($notenarr[$row->lvnote]))
$tbl.=$notenarr[$row->lvnote];
else
$tbl.=$row->lvnote;
$semester[$rolle->studiensemester_kurzbz] = 1;
}
$tbl.= "</td>";
// LV Gesamtnote Punkte
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$lvpunkte = ($row->lvpunkte!=''?(float)$row->lvpunkte:'');
$tbl.="<td>".$lvpunkte."</td>";
}
if ($row->note != $row->lvnote && $row->lvnote != NULL)
{
$markier = " style='background-color: #FFD999;'";
$legende=true;
}
else
$markier = "";
$tbl .= "<td ".$markier.">";
if(isset($notenarr[$row->note]))
$tbl.=$notenarr[$row->note];
else
$tbl.=$row->note;
$tbl .= "</td>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$punkte = ($row->punkte!=''?((float)$row->punkte):'');
$tbl.="<td>".$punkte."</td>";
}
$tbl .= '<td>'.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').'</td>';
$student = new student($user); // TODO EINE
$pruefung = new pruefung();
$pruefung->getPruefungen($student->prestudent_id, null,$row->lehrveranstaltung_id,$stsem);
if(count($pruefung->result)>0)
{
$tbl.='<td>';
foreach($pruefung->result as $row)
{
if(isset($notenarr[$row->note]))
$note=$notenarr[$row->note];
else
$note=$row->note;
if($row->punkte!='')
$punkte = ' ('.(float)$row->punkte.')';
else
$punkte='';
$tbl.= $row->pruefungstyp_beschreibung.' '.$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$note.$punkte.'<br>';
}
$tbl.='</td>';
}
else
$tbl.='<td></td>';
$tbl .= "</tr>";
}
echo "<span style='margin-left:15px;'>".$p->t('global/studiensemester')."</span>";
echo "<SELECT name='stsem' onChange=\"MM_jumpMenu('self',this,0)\">";
echo "<option disabled ".($stsem == "" ? "selected" : "")." value>".$p->t('global/auswaehlen')."</option>";
echo "<OPTION value='notenliste.php?stsem=alle".$getParam.(isset($prestudent_id) ? "&prestudent_id=".$prestudent_id : "")."'>alle Semester</OPTION>";
foreach ($semester as $semk => $semr)
{
echo "<OPTION ".($stsem == $semk ? "selected" : "")." value='notenliste.php?stsem=$semk&prestudent_id=".$prestudent_id."'>$semk</OPTION>";
}
echo "</SELECT>";
//echo "Datum: ".date('d.m.Y')."<br />";
echo "<br />";
//Lehrveranstaltungen und Noten holen
if($stsem != "alle")
{
$sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) ";
}
else
$sqlFilter = "";
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum,
tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum
FROM
lehre.tbl_lehrveranstaltung, lehre.tbl_zeugnisnote
LEFT OUTER JOIN
campus.tbl_lvgesamtnote
USING (lehrveranstaltung_id, prestudent_id, studiensemester_kurzbz)
JOIN tbl_prestudent USING(prestudent_id)
WHERE
tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id, FHC_INTEGER)
.$sqlFilter."
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id
ORDER BY bezeichnung";
if($result=$db->db_query($qry))
{
//Tabelle anzeigen
$tbl= "<table class='tablesorter' id='notenliste' style='width: auto;'>
<thead>
<tr class='liste'>
<th>".$p->t('global/lehrveranstaltung')."</th>
<th>".$p->t('benotungstool/lvNote')."</th>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$tbl.="<th>".$p->t('benotungstool/punkte')."</th>";
$tbl.=" <th>".$p->t('benotungstool/zeugnisnote')."</th>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$tbl.="<th>".$p->t('benotungstool/punkte')."</th>";
$tbl.="
<th>".$p->t('tools/benotungsdatumDerZeugnisnote')."</th>
<th>".$p->t('benotungstool/pruefung')."</th>
</tr>
</thead>
<tbody>";
$i=0;
$legende = false;
while($row=$db->db_fetch_object($result))
{
$lv_obj = new lehrveranstaltung();
$lv_obj->load($row->lehrveranstaltung_id);
$i++;
$tbl.= "<tr class='liste".($i%2)."'><td>".$lv_obj->bezeichnung_arr[$sprache].($lv_obj->lehrform_kurzbz!="" && $lv_obj->lehrform_kurzbz!=" - "?" (".$lv_obj->lehrform_kurzbz.")":"")."</td>";
$tbl.= "<td>";
//Nur freigegebene Noten anzeigen
if($row->freigabedatum>=$row->lvbenotungsdatum)
{
if(isset($notenarr[$row->lvnote]))
$tbl.=$notenarr[$row->lvnote];
else
$tbl.=$row->lvnote;
}
$tbl.= "</td>";
// LV Gesamtnote Punkte
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$lvpunkte = ($row->lvpunkte!=''?(float)$row->lvpunkte:'');
$tbl.="<td>".$lvpunkte."</td>";
}
if ($row->note != $row->lvnote && $row->lvnote != NULL)
{
$markier = " style='background-color: #FFD999;'";
$legende=true;
}
else
$markier = "";
$tbl .= "<td ".$markier.">";
if(isset($notenarr[$row->note]))
$tbl.=$notenarr[$row->note];
else
$tbl.=$row->note;
$tbl .= "</td>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$punkte = ($row->punkte!=''?((float)$row->punkte):'');
$tbl.="<td>".$punkte."</td>";
}
$tbl .= '<td>'.$datum_obj->formatDatum($row->benotungsdatum,'d.m.Y').'</td>';
$pruefung = new pruefung();
$prestudent = new prestudent();
$prestudent->getPrestudentsFromUid($user);
$pruefungen_arr = array();
foreach($prestudent->result as $ps)
{
$pruefung->getPruefungen($ps->prestudent_id, null,$row->lehrveranstaltung_id,$stsem);
array_merge($pruefungen_arr, $pruefung->result);
}
if(count($pruefungen_arr)>0)
{
$tbl.='<td>';
foreach($pruefungen_arr as $row)
{
if(isset($notenarr[$row->note]))
$note=$notenarr[$row->note];
else
$note=$row->note;
if($row->punkte!='')
$punkte = ' ('.(float)$row->punkte.')';
else
$punkte='';
$tbl.= $row->pruefungstyp_beschreibung.' '.$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$note.$punkte.'<br>';
}
$tbl.='</td>';
}
else
$tbl.='<td></td>';
$tbl .= "</tr>";
}
$tbl.= "</tbody></table>";
$tbl.= "</tbody></table>";
if($legende)
$tbl.= "<table><tbody><tr><td width='50' style='background-color: #FFD999;'></td><td>".$p->t('tools/hinweistextMarkierung')."</td></tr></tbody></table>";
if($i==0)
echo $p->t('tools/nochKeineBeurteilungEingetragen');
if($legende)
$tbl.= "<table><tbody><tr><td width='50' style='background-color: #FFD999;'></td><td>".$p->t('tools/hinweistextMarkierung')."</td></tr></tbody></table>";
if($i==0)
echo $p->t('tools/nochKeineBeurteilungEingetragen');
else
echo $tbl;
}
else
echo $tbl;
{
$error .= $p->t('tools/fehlerBeimAuslesenDerNoten');
}
}
echo "</div>";
}
else
{
$error .= $p->t('tools/fehlerBeimAuslesenDerNoten');
echo "<div class='contentBox'>";
echo $p->t("upload/keineStudiengaengeDefiniert");
echo "</div>";
}
}
echo $error;
@@ -285,7 +285,7 @@ function getPruefungByLvFromStudiengang($aktStudiensemester = null, $uid = null)
}
$anmeldung = new pruefungsanmeldung();
$anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester);
$anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester);
foreach($anmeldungen as $anm)
{
@@ -526,7 +526,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$anmeldung->lehrveranstaltung_id = $_REQUEST["lehrveranstaltung_id"];
$anmeldung->pruefungstermin_id = $_REQUEST["termin_id"];
$anmeldung->wuensche = $_REQUEST["bemerkung"];
$anmeldung->uid = $prestudent->uid;
$anmeldung->uid = $uid;
$anmeldung->reihung = $reihung+1;
$anmeldung->status_kurzbz = "angemeldet";
$anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz;
@@ -545,7 +545,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
}
//Kollisionsprüfung
$anmeldungen = $anmeldung->getAnmeldungenByStudent($prestudent->uid, $aktStudiensemester);
$anmeldungen = $anmeldung->getAnmeldungenByStudent($uid, $aktStudiensemester);
foreach($anmeldungen as $temp)
{
$datum = new datum();
@@ -578,7 +578,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$anrechnung = new anrechnung();
$lv_komp = new lehrveranstaltung($studienverpflichtung_id);
$person = new person();
$person->getPersonFromBenutzer($prestudent->uid);
$person->getPersonFromBenutzer($uid);
$prestudent = new prestudent();
$prestudent->getPrestudenten($person->person_id);
@@ -598,7 +598,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
if($prestudent_id != "")
{
$anrechungSaveResult = false;
if(!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true)
if((!defined('CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG') || CIS_PRUEFUNGSANMELDUNG_ANRECHNUNG == true) && defined('CIS_PRUEFUNGSANMELDUNG_USER'))
{
$anrechnung->lehrveranstaltung_id = $lehrveranstaltung->lehrveranstaltung_id;
$anrechnung->lehrveranstaltung_id_kompatibel = $lv_komp->lehrveranstaltung_id;
+1 -1
View File
@@ -151,12 +151,12 @@ $stsem_obj = new studiensemester();
$stsem_obj->getAll();
/*** dropdown fuer studiengang ***/
$prestudent = new prestudent();
$prestudent->getPrestudentsFromUid($uid);
if(count($prestudent->result) > 0)
{
/*** dropdown fuer studiengang ***/
echo "<div class='contentBox'>";
echo "<hr>";
echo "<span>".$p->t('global/studiengang')."</span>";
File diff suppressed because it is too large Load Diff