diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index a87e534d2..199da6a94 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -39,6 +39,7 @@ require_once('../../../../include/person.class.php'); require_once('../../../../include/benutzer.class.php'); require_once('../../../../include/mitarbeiter.class.php'); require_once('../../../../include/moodle19_course.class.php'); +require_once('../../../../include/moodle24_course.class.php'); require_once('../../../../include/mail.class.php'); require_once('../../../../include/phrasen.class.php'); @@ -530,8 +531,8 @@ $qry = "SELECT JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN campus.tbl_uebung USING(lehreinheit_id) WHERE - studiensemester_kurzbz='".addslashes($stsem)."' AND - lehrveranstaltung_id='".addslashes($lvid)."' + studiensemester_kurzbz=".$db->db_add_param($stsem)." AND + lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." UNION SELECT 1 @@ -539,8 +540,8 @@ $qry = "SELECT campus.tbl_legesamtnote WHERE lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit - WHERE studiensemester_kurzbz='".addslashes($stsem)."' AND - lehrveranstaltung_id='".addslashes($lvid)."') + WHERE studiensemester_kurzbz=".$db->db_add_param($stsem)." AND + lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER).") "; if($result = $db->db_query($qry)) @@ -589,8 +590,8 @@ if(!$rechte->isBerechtigt('admin',0) && { $qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lvid)."' AND - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem)."' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid='".addslashes($user)."'"; + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)." AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($user).';'; if($result = $db->db_query($qry)) { if($db->db_num_rows($result)==0) @@ -608,20 +609,10 @@ echo ''; echo ''; echo "
 "; echo "".$lv_obj->bezeichnung_arr[$sprache].""; -/* -if($lehreinheit_id=='') - die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden'); - -if(!isset($_GET['standalone'])) -{ - //Menue - include("menue.inc.php"); -}*/ - // lvgesamtnote für Studenten speichern -if (isset($_REQUEST["submit"]) && ($_POST["student_uid"] != '')){ - +if (isset($_REQUEST["submit"]) && ($_POST["student_uid"] != '')) +{ $jetzt = date("Y-m-d H:i:s"); $student_uid = $_POST["student_uid"]; $lvid = $_REQUEST["lvid"]; @@ -663,10 +654,18 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1)) { $jetzt = date("Y-m-d H:i:s"); $neuenoten = 0; - $studlist = "\n"; + $studlist = "
Mat. Nr.".$p->t('global/nachname')."".$p->t('global/vorname')."".$p->t('benotungstool/note')."
\n"; // studentenquery - $qry_stud = "SELECT DISTINCT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = '".addslashes($stsem)."' and lehrveranstaltung_id = '".addslashes($lvid)."' ORDER BY nachname, vorname "; + $qry_stud = "SELECT + DISTINCT uid, vorname, nachname, matrikelnr + FROM + campus.vw_student_lehrveranstaltung + JOIN campus.vw_student USING(uid) + WHERE + studiensemester_kurzbz = ".$db->db_add_param($stsem)." + AND lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." + ORDER BY nachname, vorname "; if($result_stud = $db->db_query($qry_stud)) { $i=1; @@ -687,8 +686,6 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1)) } } - // } - // } $studlist .= "
".$p->t('global/personenkz')."".$p->t('global/nachname')."".$p->t('global/vorname')."".$p->t('benotungstool/note')."
"; //mail an assistentin und den user selber verschicken @@ -709,12 +706,11 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1)) $mail->setHTMLContent($htmlcontent); $mail->setReplyTo($lektor_adresse); $mail->send(); - //mail($adressen,"Notenfreigabe ".$lv->bezeichnung,"".$lv->bezeichnung." - ".$stsem." (".$lv->semester.". Sem.)

Benutzer ".$freigeber." (".$mit->kurzbz.") hat die LV-Noten für folgende Studenten freigegeben:

".$studlist."
Mail wurde verschickt an: ".$adressen."","From: vilesci@".DOMAIN."\nContent-Type: text/html\n"); } } else { - echo 'Fehler beim Freigeben der Noten: Das Uebergebene Passwort ist falsch'; + echo ''.$p->t('gesamtnote/passwortFalsch').''; } } @@ -807,8 +803,37 @@ echo ''; "; + + if($grade_from_moodle) + { + $moodle24 = new moodle24_course(); + $moodle24->loadNoten($lvid, $stsem); + + $moodle24_course_bezeichung=array(); + + // Bezeichnungen der Moodlekurse laden + foreach($moodle24->result as $obj) + { + if(!isset($moodle24_course_bezeichnung)) + { + $moodle24course = new moodle24_course(); + $moodle24course->load($obj->mdl_course_id); + + $moodle24_course_bezeichung[$obj->mdl_course_id]=$moodle24course->mdl_shortname; + } + } + } + // studentenquery - $qry_stud = "SELECT DISTINCT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid) WHERE studiensemester_kurzbz = '".addslashes($stsem)."' and lehrveranstaltung_id = '".addslashes($lvid)."' ORDER BY nachname, vorname "; + $qry_stud = "SELECT + DISTINCT uid, vorname, nachname, matrikelnr + FROM + campus.vw_student_lehrveranstaltung + JOIN campus.vw_student USING(uid) + WHERE + studiensemester_kurzbz = ".$db->db_add_param($stsem)." + AND lehrveranstaltung_id = ".$db->db_add_param($lvid)." + ORDER BY nachname, vorname "; $mdldaten=null; if($result_stud = $db->db_query($qry_stud)) { @@ -820,9 +845,6 @@ echo '
 
'; echo ""; - // - // - //"; echo " @@ -834,6 +856,8 @@ echo '
$row_stud->uid$row_stud->nachname$row_stud->vorname$row_stud->uid $row_stud->nachname
'; $note=0; if($grade_from_moodle) { + //Moodle 1.9 + // Alle Moodlekursdaten zu Lehreinheit und Semester lesen wenn noch nicht belegt. if (is_null($mdldaten)) { @@ -889,7 +913,7 @@ echo '
'; $leneg = " style='font-weight:bold'"; $mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname; - $title="\r\nNote in Moodlekurse: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; + $title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n"; foreach ($kursasObj[$iKurs] as $key => $value) { $title.=$key."=>".$value."\r\n"; @@ -919,7 +943,30 @@ echo '
'; echo '
'.$moodle_course->errormsg.'
'; $errorshown=true; } - } + } + + // Moodle 2.4 + if(isset($moodle24) && count($moodle24->result)>0) + { + foreach($moodle24->result as $moodle24_noten) + { + if($moodle24_noten->uid==$row_stud->uid) + { + $note_le+=$moodle24_noten->note; + $le_anz+=1; + if ($moodle24_noten->note == 5) + $leneg = " style='color:red; font-weight:bold'"; + else + $leneg = ' style="font-weight: bold;"'; + $title="Moodle 2.4 KursID: ".$moodle24_noten->mdl_course_id. + "\nKursbezeichnung: ".$moodle24_course_bezeichung[$moodle24_noten->mdl_course_id]. + "\nUser: ".$moodle24_noten->uid. + "\nNote: $moodle24_noten->note"; + $note_les_str .= "
".$moodle24_noten->note." (".$moodle24_course_bezeichung[$moodle24_noten->mdl_course_id].") "; + + } + } + } } else { diff --git a/include/moodle24_course.class.php b/include/moodle24_course.class.php index 0a39dd37b..2a57ca7c7 100644 --- a/include/moodle24_course.class.php +++ b/include/moodle24_course.class.php @@ -351,7 +351,7 @@ class moodle24_course extends basis_db * werden soll, false wenn nicht * @return true wenn ok, false im Fehlerfall * - * TODO eventuell auslagern in moodle.class + * TODO eventuell auslagern in moodle.class oder ganz loeschen */ public function updateGruppenSync($moodle_id, $gruppen) { @@ -519,13 +519,11 @@ class moodle24_course extends basis_db /** - * Laedt die Noten zu einem Moodle Course ID + * Laedt die Moodle Noten zu allen Moodlekursen einer Lehrveranstaltung * @param lehrveranstaltung_id * @param $studiensemester_kurzbz * * @return objekt mit den Noten der Teilnehmer dieses Kurses - * - * TODO Anpassung an Moodle 2.4 fertigstellen */ public function loadNoten($lehrveranstaltung_id, $studiensemester_kurzbz) { @@ -540,24 +538,27 @@ class moodle24_course extends basis_db // Ermitteln die Lehreinheiten und Moodle ID $qry = " - SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id - FROM lehre.tbl_moodle + SELECT + distinct mdl_course_id + FROM + lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz) - WHERE tbl_moodle.lehrveranstaltung_id > 0 "; - if ($this->lehrveranstaltung_id) - $qry.= " and tbl_moodle.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' "; - if ($this->studiensemester_kurzbz) - $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' "; - $qry.= " + WHERE + tbl_moodle.lehrveranstaltung_id > 0 + AND moodle_version='2.4' + AND tbl_moodle.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)." + AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz)." UNION - SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id - FROM lehre.tbl_moodle + SELECT + distinct mdl_course_id + FROM + lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE tbl_lehreinheit.lehrveranstaltung_id > 0 "; - if ($this->lehrveranstaltung_id) - $qry.= " and tbl_lehreinheit.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' "; - if ($this->studiensemester_kurzbz) - $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' "; + WHERE + tbl_lehreinheit.lehrveranstaltung_id > 0 + AND moodle_version='2.4' + AND tbl_lehreinheit.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)." + AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz).";"; if(!$result_moodle=$this->db_query($qry)) { @@ -565,66 +566,32 @@ class moodle24_course extends basis_db return false; } - - // init - $_lehreinheit=array(); // Lehreinheiten zum lesen Studenten im Campus (Student und LE im FAS) - $_lehrveranstaltung = array(); // Gesamte Information der Lehreinheit und Moodle IDs - $_studiensemester_kurzbz=array(); - $_lehreinheit_kpl=array(); - while($row = $this->db_fetch_object($result_moodle)) + + while($row_moodle = $this->db_fetch_object($result_moodle)) { - - $row->lehreinheit_id=trim($row->lehreinheit_id); - $_lehreinheit_kpl[$row->lehreinheit_id]=$row; - - $_lehreinheit[$row->lehreinheit_id]=$row->lehreinheit_id; // Fuer Select Campus + $client = new SoapClient($this->serverurl); + $response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id); - $row->lehrveranstaltung_id=trim($row->lehrveranstaltung_id); - $_lehrveranstaltung[$row->lehrveranstaltung_id]=$row->lehrveranstaltung_id; // Fuer Select Campus - - $row->studiensemester_kurzbz=trim($row->studiensemester_kurzbz); - $_studiensemester_kurzbz[$row->studiensemester_kurzbz]=$row->studiensemester_kurzbz; // Fuer Select Campus - - } - if (count($_lehreinheit)<1) // Es gibt keine Lehreinheiten - { - $this->errormsg='Es wurde kein passender Moodle-Kurs gefunden'; - return false; - } - - - // Von der Lehreinheit kann der Moodle-Kurs ermittelt werden - $this->mdl_course_id=trim($_lehreinheit_kpl[$row->lehreinheit_id]->mdl_course_id); - if ($last_moodle_id==$this->mdl_course_id) - continue; - $last_moodle_id=$this->mdl_course_id; - - - $client = new SoapClient($serverurl); - $response = $client->fhcomplete_get_course_grades($this->mdl_course_id); - - if (count($response)>0) - { - - foreach($response as $row) + if (count($response)>0) { - $userobj = new stdClass(); - $userobj->vorname = $row->vorname; - $userobj->nachname = $row->nachname; - $userobj->idnummer = $row->idnummer; - $userobj->username = $row->username; - $userobj->note = $row->note; - - $this->result[]=$obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Moodle Noten'; - return false; - } + foreach($response as $row) + { + if($row['note']!='-') + { + $userobj = new stdClass(); + $userobj->mdl_course_id = $row_moodle->mdl_course_id; + $userobj->vorname = $row['vorname']; + $userobj->nachname = $row['nachname']; + $userobj->idnummer = $row['idnummer']; + $userobj->uid = $row['username']; + $userobj->note = $row['note']; + $this->result[]=$userobj; + } + } + } + } + return true; } diff --git a/include/moodle24_user.class.php b/include/moodle24_user.class.php index 48b7c9d9d..043ac4855 100644 --- a/include/moodle24_user.class.php +++ b/include/moodle24_user.class.php @@ -341,8 +341,8 @@ class moodle24_user extends basis_db $data->courseid=$mdl_course_id; $client->enrol_manual_enrol_users(array($data)); - $this->log.="\nStudentIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; - $this->log_public.="\nStudentIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt"; + $this->log.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; + $this->log_public.="\nStudentIn $row_user->student_uid wurde zum Kurs hinzugefügt"; $this->sync_create++; } //Gruppenzuteilung @@ -365,8 +365,8 @@ class moodle24_user extends basis_db //wenn nicht dann zuteilen $this->createGroupMember($groupid, $this->mdl_user_id); $this->group_update++; - $this->log.="\nStudentIn $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet"; - $this->log_public.="\nStudentIn $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet"; + $this->log.="\nStudentIn $row_user->student_uid wurde der Gruppe $gruppenbezeichnung zugeordnet"; + $this->log_public.="\nStudentIn $row_user->student_uid wurde der Gruppe $gruppenbezeichnung zugeordnet"; } } } @@ -477,6 +477,9 @@ class moodle24_user extends basis_db */ public function createUser($uid) { + if($uid=='_DummyLektor') + return true; + $qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid=".$this->db_add_param($uid); if($this->db_query($qry)) { diff --git a/locale/de-AT/gesamtnote.php b/locale/de-AT/gesamtnote.php index 7b2acc93b..a4cfb6a3f 100644 --- a/locale/de-AT/gesamtnote.php +++ b/locale/de-AT/gesamtnote.php @@ -1,4 +1,5 @@ phrasen['gesamtnote/wollenSieWirklichLoeschen']='Wollen Sie die markierten Einträge wirklich löschen? Alle bereits eingetragenen Kreuzerl gehen dabei verloren'; $this->phrasen['gesamtnote/noteUnveraendert']='Note unverändert'; -?> \ No newline at end of file +$this->phrasen['gesamtnote/passwortFalsch']='Fehler beim Freigeben der Noten: Das Uebergebene Passwort ist falsch'; +?> diff --git a/locale/en-US/gesamtnote.php b/locale/en-US/gesamtnote.php index 344c1a974..fe5f91c14 100644 --- a/locale/en-US/gesamtnote.php +++ b/locale/en-US/gesamtnote.php @@ -1,4 +1,5 @@ phrasen['gesamtnote/wollenSieWirklichLoeschen']='Do you really want to delete the selected entries? All the checkmark lists you have entered will be lost'; $this->phrasen['gesamtnote/noteUnveraendert']='Grade unmodified'; -?> \ No newline at end of file +$this->phrasen['gesamtnote/passwortFalsch']='Failure: The supplied Password is invalid'; +?>