Gesamtnote kann jetzt Noten aus Moodle importieren

This commit is contained in:
Andreas Österreicher
2008-10-21 15:31:01 +00:00
parent 4cf8f65ad7
commit d8241c5e68
2 changed files with 103 additions and 40 deletions
@@ -38,6 +38,7 @@ require_once('../../../../include/pruefung.class.php');
require_once('../../../../include/person.class.php');
require_once('../../../../include/benutzer.class.php');
require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/moodle_course.class.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
@@ -316,6 +317,9 @@ function getTopOffset(){
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim oeffnen der Datenbankverbindung');
if(!$conn_moodle = pg_pconnect(CONN_STRING_MOODLE))
die('Fehler beim oeffnen der Datenbankverbindung');
$user = get_uid();
if(!check_lektor($user, $conn))
@@ -353,6 +357,25 @@ $datum_obj = new datum();
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
$qry = "SELECT
*
FROM
lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN campus.tbl_uebung USING(lehreinheit_id)
WHERE
studiensemester_kurzbz='".addslashes($stsem)."' AND
lehrveranstaltung_id='".addslashes($lvid)."'";
if($result = pg_query($conn, $qry))
{
if(pg_num_rows($result)>0)
$grade_from_moodle=false;
else
$grade_from_moodle=true;
}
else
die('Fehler');
//Kopfzeile
echo '<table class="tabcontent" height="100%">';
echo ' <tr>';
@@ -630,9 +653,6 @@ if ($pr_all->getPruefungenLV($lvid,"Termin2",$stsem))
}
//Studentenliste
echo "
<table>
@@ -652,7 +672,7 @@ echo "
<td class='ContentHeader2'>UID</td>
<td class='ContentHeader2'>Nachname</td>
<td class='ContentHeader2'>Vorname</td>
<td class='ContentHeader2'>LE-Noten (LE-ID)</td>
<td class='ContentHeader2'>".($grade_from_moodle?'Moodle-Note':'LE-Noten (LE-ID)')."</td>
<td class='ContentHeader2'></td>
<td class='ContentHeader2'>LV-Note</td>
<td class='ContentHeader2' align='right'>
@@ -698,6 +718,7 @@ echo "
if($result_stud = pg_query($conn, $qry_stud))
{
$i=1;
$errorshown=false;
while($row_stud = pg_fetch_object($result_stud))
{
@@ -741,28 +762,60 @@ echo "
$note_les_str = '';
$le_anz = 0;
$note_le = 0;
$le = new lehreinheit($conn);
$le->load_lehreinheiten($lvid, $stsem);
foreach($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($conn, $l->lehreinheit_id);
if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id))
{
//$note_les_str .= "- (".$l->lehreinheit_id.")";
}
else
{
$note_le += $legesamtnote->note;
$le_anz += 1;
if ($legesamtnote->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = "";
$note_les_str .= "<span".$leneg.">".$legesamtnote->note."</span> (".$l->lehreinheit_id.") ";
}
}
if($grade_from_moodle)
{
//Noten aus Moodle
$moodle_course = new moodle_course($conn, $conn_moodle);
$mdldata = $moodle_course->loadNoten($lvid, $stsem, $row_stud->uid, true);
if(is_array($mdldata))
{
foreach ($mdldata as $elem)
{
$note_le += $elem[0]->note;
$le_anz += 1;
if ($elem[0]->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = " style='font-weight:bold'";
$note_les_str .= "<span".$leneg.">".$elem[0]->note."</span> <span style='font-size:10px'>(".$elem[0]->shortname.")</span> ";
}
}
elseif(!$mdldata)
{
//den Error nur einmal anzeigen und nicht für jeden Studenten
if(!$errorshown)
{
echo '<br><b>'.$moodle_course->errormsg.'</b><br>';
$errorshown=true;
}
}
}
else
{
//Noten aus Uebungstool
$le = new lehreinheit($conn);
$le->load_lehreinheiten($lvid, $stsem);
foreach($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($conn, $l->lehreinheit_id);
if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id))
{
//$note_les_str .= "- (".$l->lehreinheit_id.")";
}
else
{
$note_le += $legesamtnote->note;
$le_anz += 1;
if ($legesamtnote->note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = "";
$note_les_str .= "<span".$leneg.">".$legesamtnote->note."</span> (".$l->lehreinheit_id.") ";
}
}
}
if ($lvgesamtnote = new lvgesamtnote($conn, $lvid,$row_stud->uid,$stsem))
{
$note_lv = $lvgesamtnote->note;
@@ -787,7 +840,7 @@ echo "
$hide = "style='visibility:hidden;'";
else
$hide = "style='visibility:visible;'";
echo "<form name='$row_stud->uid' id='$row_stud->uid' method='POST' action='".$_SERVER['PHP_SELF']."?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td><span id='lvnoteneingabe_".$row_stud->uid."' ".$hide."><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_vorschlag' name='note'><input type='hidden' name='note_orig' value='$note_lv'><input type='button' value='->' onclick='saveLVNote(\"$row_stud->uid\")'></span></td></form>";
echo "<form name='$row_stud->uid' id='$row_stud->uid' method='POST' action='".$_SERVER['PHP_SELF']."?lvid=$lvid&lehreinheit_id=$lehreinheit_id&stsem=$stsem'><td nowrap><span id='lvnoteneingabe_".$row_stud->uid."' ".$hide."><input type='hidden' name='student_uid' value='$row_stud->uid'><input type='text' size='1' value='$note_vorschlag' name='note'><input type='hidden' name='note_orig' value='$note_lv'><input type='button' value='->' onclick='saveLVNote(\"$row_stud->uid\")'></span></td></form>";
if ($note_lv == 5)
$negmarkier = " style='color:red; font-weight:bold;'";
+23 -13
View File
@@ -1014,23 +1014,17 @@ class moodle_course
// und der lehrveranstaltung_id aus FAS ( bsp 23802 )
// --------------------------------------------------------------------
$qry = "
select lehreinheit_id, mdl_course_id,studiensemester_kurzbz,lehrveranstaltung_id
from (
SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,studiensemester_kurzbz,tbl_moodle.lehrveranstaltung_id
FROM lehre.tbl_moodle
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
WHERE tbl_moodle.lehrveranstaltung_id like E'".addslashes($lehrveranstaltung_id)."'
AND tbl_moodle.studiensemester_kurzbz like E'".addslashes($studiensemester_kurzbz)."'
UNION
SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_moodle.lehrveranstaltung_id
FROM lehre.tbl_moodle
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE tbl_lehreinheit.lehrveranstaltung_id like E'".addslashes($lehrveranstaltung_id)."'
AND tbl_lehreinheit.studiensemester_kurzbz like E'".addslashes($studiensemester_kurzbz)."'
) as foo
WHERE lehrveranstaltung_id like E'".addslashes($lehrveranstaltung_id)."'
AND studiensemester_kurzbz like E'".addslashes($studiensemester_kurzbz)."'
;";
if(!$result = @pg_query($this->conn, $qry))
@@ -1041,16 +1035,20 @@ class moodle_course
// init
$lehreinheit_kpl = array(); // Gesamte Information der Lehreinheit und Moodle IDs
$lehreinheit=array(); // Lehreinheiten zum lesen Studenten im Campus (Student und LE im FAS)
while($row = @pg_fetch_object($result))
//echo $qry;
while($row = pg_fetch_object($result))
{
$row->lehreinheit_id=trim($row->lehreinheit_id);
$lehreinheit[$row->lehreinheit_id]=$row->lehreinheit_id; // Fuer Select Campus
$lehreinheit_kpl[$row->lehreinheit_id]=$row; // Fuer GesamtDaten wird Ergaenzt von Campus,
}
@pg_free_result($result);
@pg_free_result($result);
if (count($lehreinheit)<1) // Es gibt keine Lehreinheiten
{
$this->errormsg='Es wurde kein passender Moodle-Kurs gefunden';
return false;
}
// Fuer die naechste Verarbeitung die Array Sortieren
asort($lehreinheit);
reset($lehreinheit);
@@ -1103,7 +1101,7 @@ class moodle_course
// --------------------------------------------------------------------
// Moodle Noten - Uebersetztungstabellen einlesen (min. ein Record )
// --------------------------------------------------------------------
$qry = "select * from mdl_grade_letters order by contextid; ";
$qry = "select * from mdl_grade_letters order by contextid, lowerboundary desc; ";
if(!$result = @pg_query($this->conn_moodle, $qry))
{
$this->errormsg = 'Fehler beim Lesen der Noten ';
@@ -1195,9 +1193,12 @@ class moodle_course
$mdl_grade_letters_first=1; // Es muss einen Default geben (Administrator Noten)
if (isset($mdl_grade_letters[$mdl_grade_letters_first]))
$arrTmpDefaultNoten=$mdl_grade_letters[$mdl_grade_letters_first];
elseif (isset($mdl_grade_letters[$mdl_course_id]))
if($this->getContext(50, $mdl_course_id))
$mdl_grade_letters_first = $this->mdl_context_id;
if (isset($mdl_grade_letters[$mdl_grade_letters_first]))
{
$mdl_grade_letters_first=$mdl_course_id;
$arrTmpDefaultNoten=$mdl_grade_letters[$mdl_grade_letters_first];
}
if (!is_array($arrTmpDefaultNoten) || count($arrTmpDefaultNoten)<1)
@@ -1214,10 +1215,19 @@ class moodle_course
// Vergleichsoperatoren fuer Noten
$iTmpVergl=$arrTmpDefaultNoten[$iTmpIndex]->lowerboundary;
$iTmpFaktor=(!empty($row->rawgrademax)?(int)(100/$row->rawgrademax):1);
//echo "<br>::$iTmpIndex $mdl_finalgrade>=( $iTmpVergl / $iTmpFaktor)::<br>";
if ($mdl_finalgrade>=( $iTmpVergl / $iTmpFaktor) )
{
if (is_numeric($arrTmpDefaultNoten[$iTmpIndex]->letter))
{
$row->note=($iTmpIndex + 1);
if($row->note>5 || $row->note<1)
{
echo "FOOOO";
$this->errormsg = 'Unbekannter Notenschluessel';
return false;
}
}
else
{
if ( substr($arrTmpDefaultNoten[$iTmpIndex]->letter,0,1)=="A")
@@ -1281,7 +1291,7 @@ class moodle_course
if (!is_array($mdl_course) || count($mdl_course)<1)
{
$this->errormsg = ' keine Informationen gefunden'. count($mdl_course) ;
return false;
return true;
}
if($bDetailinfo) // Alle Informationen Retour