mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-04 05:39:28 +00:00
Gesamtnote kann jetzt Noten aus Moodle importieren
This commit is contained in:
@@ -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;'";
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user