async speichern von noten

This commit is contained in:
Gerald Raab
2007-08-31 11:23:34 +00:00
parent e0f5da9db0
commit 0d71ab0fab
5 changed files with 418 additions and 8 deletions
+131
View File
@@ -0,0 +1,131 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/studiengang.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/lehreinheit.class.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/uebung.class.php');
require_once('../../../../include/beispiel.class.php');
require_once('../../../../include/studentnote.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/legesamtnote.class.php');
require_once('../../../../include/lvgesamtnote.class.php');
require_once('../../../../include/zeugnisnote.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim oeffnen der Datenbankverbindung');
$user = get_uid();
if(!check_lektor($user, $conn))
die('Sie haben keine Berechtigung fuer diesen Bereich');
$rechte = new benutzerberechtigung($conn);
$rechte->getBerechtigungen($user);
if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id
$lvid = $_GET['lvid'];
else
die('Fehlerhafte Parameteruebergabe');
if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id
$lehreinheit_id = $_GET['lehreinheit_id'];
else
$lehreinheit_id = '';
//Laden der Lehrveranstaltung
$lv_obj = new lehrveranstaltung($conn);
if(!$lv_obj->load($lvid))
die($lv_obj->errormsg);
//Studiengang laden
$stg_obj = new studiengang($conn,$lv_obj->studiengang_kz);
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
//Vars
$datum_obj = new datum();
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
//Kopfzeile
//Studiensemester laden
$stsem_obj = new studiensemester($conn);
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
if($lehreinheit_id=='')
die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden');
$note = $_REQUEST["note"];
// lvgesamtnote für studenten speichern
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') && ((($note>0) && ($note < 6)) || ($note==8)) ){
$jetzt = date("Y-m-d H:i:s");
$student_uid = $_REQUEST["student_uid"];
$legesamtnote = new legesamtnote($conn, $lehreinheit_id);
if (!$legesamtnote->load($student_uid,$lehreinheit_id))
{
$legesamtnote->student_uid = $student_uid;
$legesamtnote->lehreinheit_id = $lehreinheit_id;
$legesamtnote->note = $_REQUEST["note"];
$legesamtnote->benotungsdatum = $jetzt;
$legesamtnote->updateamum = null;
$legesamtnote->updatevon = null;
$legesamtnote->insertamum = $jetzt;
$legesamtnote->insertvon = $user;
$legesamtnote->new = true;
$response = "neu";
}
else
{
$legesamtnote->note = $_REQUEST["note"];
$legesamtnote->benotungsdatum = $jetzt;
$legesamtnote->updateamum = $jetzt;
$legesamtnote->updatevon = $user;
$response = "update";
}
if (!$legesamtnote->save())
echo "<span class='error'>".$legesamtnote->errormsg."</span>";
else
echo $response;
}
else
echo "Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!";
@@ -55,7 +55,74 @@ require_once('../../../../include/legesamtnote.class.php');
{
return confirm('Wollen Sie die markierten Einträge wirklich löschen? Alle bereits eingetragenen Kreuzerl gehen dabei verloren!!');
}
//-->
//-->
var anfrage = null;
function erzeugeAnfrage(){
try {
anfrage = new XMLHttpRequest();
} catch (versuchmicrosoft) {
try {
anfrage = new ActiveXObject("Msxml12.XMLHTTP");
} catch (anderesmicrosoft){
try {
anfrage = new ActiveXObject("Microsoft.XMLHTTP");
} catch (fehlschlag){
anfrage = null;
}
}
}
if (anfrage == null) alert("Fehler beim Erstellen des Anfrageobjekts!");
}
function saveLENote(uid){
note = document.getElementById(uid).note.value;
if ((note < 0) || (note > 5 && note != 8))
{
alert("Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!");
document.getElementById(uid).note.value="";
}
else
{
erzeugeAnfrage();
//note = document.getElementById(uid).note.value;
stud_uid = uid;
var url= '<?php echo "legesamtnoteeintragen.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem"; ?>';
url += '&submit=1&student_uid='+uid+"&note="+note;
anfrage.open("GET", url, true);
anfrage.onreadystatechange = updateSeite;
anfrage.send(null);
}
}
function updateSeite(){
if (anfrage.readyState == 4){
if (anfrage.status == 200) {
uid = stud_uid;
var note = document.getElementById(uid).note.value;
var resp = anfrage.responseText;
if (resp == "neu" || resp == "update")
{
notentd = document.getElementById("note_"+uid);
while (notentd.childNodes.length>0)
{
notentd.removeChild(notentd.lastChild);
}
notenode = document.createTextNode(note);
notentd.appendChild(notenode);
}
else
{
alert(resp);
document.getElementById(uid).note.value="";
}
} else alert("Request status:" + anfrage.status);
}
}
</script>
</head>
@@ -374,9 +441,9 @@ if($result_grp = pg_query($conn, $qry))
$note_final = null;
}
}
echo "<form name='$row_stud->uid' method='POST' action='legesamtnoteverwalten.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_final' name='note'><input type='submit' name='submit' value='->'></td></form>";
echo "<form name='$row_stud->uid' id='$row_stud->uid' method='POST' action='legesamtnoteverwalten.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_final' name='note'><input type='button' value='->' onclick='saveLENote(\"$row_stud->uid\")'></td></form>";
echo "<td align='center'>$note</td>";
echo "<td align='center' id='note_$row_stud->uid'>$note</td>";
echo "</tr>";
$i++;
}
+140
View File
@@ -0,0 +1,140 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/studiengang.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/lehreinheit.class.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/uebung.class.php');
require_once('../../../../include/beispiel.class.php');
require_once('../../../../include/studentnote.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/legesamtnote.class.php');
require_once('../../../../include/lvgesamtnote.class.php');
require_once('../../../../include/zeugnisnote.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim oeffnen der Datenbankverbindung');
$user = get_uid();
if(!check_lektor($user, $conn))
die('Sie haben keine Berechtigung fuer diesen Bereich');
$rechte = new benutzerberechtigung($conn);
$rechte->getBerechtigungen($user);
if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id
$lvid = $_GET['lvid'];
else
die('Fehlerhafte Parameteruebergabe');
if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id
$lehreinheit_id = $_GET['lehreinheit_id'];
else
$lehreinheit_id = '';
//Laden der Lehrveranstaltung
$lv_obj = new lehrveranstaltung($conn);
if(!$lv_obj->load($lvid))
die($lv_obj->errormsg);
//Studiengang laden
$stg_obj = new studiengang($conn,$lv_obj->studiengang_kz);
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
//Vars
$datum_obj = new datum();
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
//Kopfzeile
//Studiensemester laden
$stsem_obj = new studiensemester($conn);
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
if($lehreinheit_id=='')
die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden');
$note = $_REQUEST["note"];
// lvgesamtnote für studenten speichern
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') && ((($note>0) && ($note < 6)) || ($note==8)) ){
$jetzt = date("Y-m-d H:i:s");
$student_uid = $_REQUEST["student_uid"];
$lvid = $_REQUEST["lvid"];
$lvgesamtnote = new lvgesamtnote($conn);
if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
{
$lvgesamtnote->student_uid = $student_uid;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
$lvgesamtnote->studiensemester_kurzbz = $stsem;
$lvgesamtnote->note = $_REQUEST["note"];
$lvgesamtnote->mitarbeiter_uid = $user;
$lvgesamtnote->benotungsdatum = $jetzt;
$lvgesamtnote->freigabedatum = null;
$lvgesamtnote->freigabevon_uid = null;
$lvgesamtnote->bemerkung = null;
$lvgesamtnote->updateamum = null;
$lvgesamtnote->updatevon = null;
$lvgesamtnote->insertamum = $jetzt;
$lvgesamtnote->insertvon = $user;
$new = true;
$response = "neu";
}
else
{
$lvgesamtnote->note = $_REQUEST["note"];
$lvgesamtnote->benotungsdatum = $jetzt;
$lvgesamtnote->updateamum = $jetzt;
$lvgesamtnote->updatevon = $user;
$new = false;
$response = "update";
}
if (!$lvgesamtnote->save($new))
echo "<span class='error'>".$lvgesamtnote->errormsg."</span>";
else
echo $response;
}
else
echo "Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!";
@@ -57,7 +57,78 @@ require_once('../../../../include/zeugnisnote.class.php');
{
return confirm('Wollen Sie die markierten Einträge wirklich löschen? Alle bereits eingetragenen Kreuzerl gehen dabei verloren!!');
}
//-->
//-->
var anfrage = null;
function erzeugeAnfrage(){
try {
anfrage = new XMLHttpRequest();
} catch (versuchmicrosoft) {
try {
anfrage = new ActiveXObject("Msxml12.XMLHTTP");
} catch (anderesmicrosoft){
try {
anfrage = new ActiveXObject("Microsoft.XMLHTTP");
} catch (fehlschlag){
anfrage = null;
}
}
}
if (anfrage == null) alert("Fehler beim Erstellen des Anfrageobjekts!");
}
function saveLVNote(uid){
note = document.getElementById(uid).note.value;
if ((note < 0) || (note > 5 && note != 8))
{
alert("Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!");
document.getElementById(uid).note.value="";
}
else
{
erzeugeAnfrage();
//note = document.getElementById(uid).note.value;
stud_uid = uid;
var url= '<?php echo "lvgesamtnoteeintragen.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem"; ?>';
url += '&submit=1&student_uid='+uid+"&note="+note;
anfrage.open("GET", url, true);
anfrage.onreadystatechange = updateSeite;
anfrage.send(null);
}
}
function updateSeite(){
if (anfrage.readyState == 4){
if (anfrage.status == 200) {
uid = stud_uid;
var note = document.getElementById(uid).note.value;
var resp = anfrage.responseText;
if (resp == "neu" || resp == "update")
{
notentd = document.getElementById("note_"+uid);
while (notentd.childNodes.length>0)
{
notentd.removeChild(notentd.lastChild);
}
notenode = document.createTextNode(note);
notentd.appendChild(notenode);
notenstatus = document.getElementById("status_"+uid);
if (resp == "update")
notenstatus.innerHTML = "<img src='../../../../skin/images/changed.png'>";
}
else
{
alert(resp);
document.getElementById(uid).note.value="";
}
} else alert("Request status:" + anfrage.status);
}
}
</script>
</head>
@@ -454,12 +525,12 @@ if($result_grp = pg_query($conn, $qry))
echo "<td>$note_les_str</td>";
echo "<form name='$row_stud->uid' method='POST' action='lvgesamtnoteverwalten.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_vorschlag' name='note'><input type='submit' name='submit' value='->'></td></form>";
echo "<form name='$row_stud->uid' id='$row_stud->uid' method='POST' action='lvgesamtnoteverwalten.php?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_vorschlag' name='note'><input type='button' value='->' onclick='saveLVNote(\"$row_stud->uid\")'></td></form>";
echo "<td align='center'>$note_lv</td>";
echo "<td align='center' id='note_$row_stud->uid'>$note_lv</td>";
//status
echo "<td align='center'>";
echo "<td align='center' id='status_$row_stud->uid'>";
if (!$lvgesamtnote->freigabedatum)
echo "<img src='../../../../skin/images/offen.png'>";
else if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
@@ -17,7 +17,8 @@ else if ($pfile == 'anwesenheitstabelle.php')
else if ($pfile == 'statistik.php')
$class_statistik = 'benotungstool_tabs_active';
echo "\n\n<!--Menue-->\n";
echo "\n\n<!--Menue-->\n";
echo "<br><div><a href='lvgesamtnoteverwalten.php?lvid=$lvid&stsem=$stsem&lehreinheit_id=$lehreinheit_id' class='Item'><font size='3'>Lehrveranstaltung benoten</font></a></div>";
echo "<br>\n";
echo "<table cellpadding='3' width='100%'>\n";
echo " <tr>\n";