From 52addd573803ff97b2f9f1d4c956639f3821182d Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 5 Feb 2015 08:28:09 +0100 Subject: [PATCH] =?UTF-8?q?Bei=20der=20Noten=C3=BCbernahme=20aus=20Moodle?= =?UTF-8?q?=20wird=20nun=20ein=20zus=C3=A4tzlicher=20Parameter=20=C3=BCber?= =?UTF-8?q?geben=20der=20angibt=20ob=20Noten=20oder=20Prozentpunkte=20?= =?UTF-8?q?=C3=BCbernommen=20werden=20sollen.=20Moodle=20Plugin=20erweiter?= =?UTF-8?q?t=20f=C3=BCr=20die=20Verwendung=20mit=20Moodle=202.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../benotungstool/lvgesamtnote_worker.php | 2 +- .../benotungstool/lvgesamtnoteverwalten.php | 91 +++++++------------ include/moodle24_course.class.php | 13 ++- .../moodlePlugin/fhcompletews/externallib.php | 16 +++- ..._wstemplate.php => local_fhcompletews.php} | 0 system/moodlePlugin/fhcompletews/version.php | 4 +- .../fhcompletews25/externallib.php | 51 +++++++++-- ..._wstemplate.php => local_fhcompletews.php} | 6 +- .../moodlePlugin/fhcompletews25/version.php | 4 +- 9 files changed, 109 insertions(+), 78 deletions(-) rename system/moodlePlugin/fhcompletews/lang/en/{local_wstemplate.php => local_fhcompletews.php} (100%) rename system/moodlePlugin/fhcompletews25/lang/en/{local_wstemplate.php => local_fhcompletews.php} (86%) diff --git a/cis/private/lehre/benotungstool/lvgesamtnote_worker.php b/cis/private/lehre/benotungstool/lvgesamtnote_worker.php index 9e1d8fbd4..e64e2fe2d 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnote_worker.php +++ b/cis/private/lehre/benotungstool/lvgesamtnote_worker.php @@ -45,4 +45,4 @@ switch($work) echo $note; exit; } -?> \ No newline at end of file +?> diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index d47355864..ea11b01ef 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -44,6 +44,7 @@ require_once('../../../../include/moodle24_course.class.php'); require_once('../../../../include/mail.class.php'); require_once('../../../../include/phrasen.class.php'); require_once('../../../../include/note.class.php'); +require_once('../../../../include/notenschluessel.class.php'); $summe_stud=0; $summe_t2=0; @@ -206,7 +207,7 @@ foreach($noten_obj->result as $row) notentd.removeChild(notentd.lastChild); } if(punkte!='') - notentext = noten_array[note]+'('+punkte+')'; + notentext = noten_array[note]+' ('+punkte+')'; else notentext = noten_array[note]; notenode = document.createTextNode(notentext); @@ -324,7 +325,7 @@ foreach($noten_obj->result as $row) { notentd.removeChild(notentd.lastChild); } - var notentext = noten_array[note]+'('+punkte+')'; + var notentext = noten_array[note]+' ('+punkte+')'; notenode = document.createTextNode(notentext); notentd.appendChild(notenode); } @@ -370,7 +371,7 @@ foreach($noten_obj->result as $row) function PunkteEingabe(idx) { var punkte = $('#textbox-punkte-'+idx).val(); - + punkte = punkte.replace(',','.'); // Request absetzen und Note zu den Punkten holen if(punkte!='') { @@ -410,7 +411,8 @@ foreach($noten_obj->result as $row) function PruefungPunkteEingabe() { var punkte = $('#pruefungspunkte').val(); - + punkte = punkte.replace(',','.'); + // Request absetzen und Note zu den Punkten holen if(punkte!='') { @@ -613,44 +615,6 @@ echo ' '; echo ""; echo "".$lv_obj->bezeichnung_arr[$sprache].""; -// lvgesamtnote für Studenten speichern -/* Auskommentiert weil es vermutlich nicht verwendet wird 21.1.2015 -if (isset($_REQUEST["submit"]) && ($_POST["student_uid"] != '')) -{ - $jetzt = date("Y-m-d H:i:s"); - $student_uid = $_POST["student_uid"]; - $lvid = $_REQUEST["lvid"]; - $lvgesamtnote = new lvgesamtnote(); - if (!$lvgesamtnote->load($lvid, $student_uid, $stsem)) - { - $lvgesamtnote->student_uid = $student_uid; - $lvgesamtnote->lehrveranstaltung_id = $lvid; - $lvgesamtnote->studiensemester_kurzbz = $stsem; - $lvgesamtnote->note = $_POST["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; - } - else - { - $lvgesamtnote->note = $_POST["note"]; - $lvgesamtnote->benotungsdatum = $jetzt; - $lvgesamtnote->updateamum = $jetzt; - $lvgesamtnote->updatevon = $user; - $new = false; - } - if (!$lvgesamtnote->save($new)) - echo "".$lvgesamtnote->errormsg.""; -} -*/ - // eingetragene lv-gesamtnoten freigeben if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1)) { @@ -891,15 +855,10 @@ echo " { $mdldata=$mdldaten[$imdldaten]->result; - # $error=(isset($mdldata[1])?$mdldata[1]:"Kurs Info "); $kursArr=(isset($mdldata[2])?$mdldata[2]:array()); $kursasObj=(isset($mdldata[3])?$mdldata[3]:array()); - # $userArr=(isset($mdldata[4])?$mdldata[4]:array()); - # $userasObj=(isset($mdldata[5])?$mdldata[5]:array()); - # $id=(isset($mdldata[6])?$mdldata[6]:''); $kursname=(isset($mdldata[7])?$mdldata[7]:''); $shortname=(isset($mdldata[8])?$mdldata[8]:''); - # $courseArr=(isset($mdldata[9])?$mdldata[9]:array()); $note=0; $userGef=false; @@ -909,7 +868,6 @@ echo " { if (isset($kursArr[$iKurs]) && isset($kursArr[$iKurs][2]) && isset($kursArr[$iKurs][6]) && strtolower(trim($row_stud->uid))==strtolower(trim($kursArr[$iKurs][2])) ) { - $note=trim($kursArr[$iKurs][6]); $userGef=true; @@ -970,11 +928,11 @@ echo " { $note_le+=$moodle24_noten->note; $le_anz+=1; - if ($moodle24_noten->note == 5) - $leneg = " style='color:red; font-weight:bold'"; - else + //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. + $title="Moodle KursID: ".$moodle24_noten->mdl_course_id. "\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id]. "\nUser: ".$moodle24_noten->uid. "\nNote: $moodle24_noten->note"; @@ -1021,10 +979,22 @@ echo " $punkte_lv = null; } + $punkte_vorschlag=''; if (!is_null($note_lv)) - $note_vorschlag = $note_lv; + $note_vorschlag = $note_lv; else if ($le_anz > 0) - $note_vorschlag = round($note_le/$le_anz); + { + if(CIS_GESAMTNOTE_PUNKTE) + { + $punkte_vorschlag = round($note_le/$le_anz); + $notenschluessel = new notenschluessel(); + $note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem); + } + else + { + $note_vorschlag = round($note_le/$le_anz); + } + } else $note_vorschlag = null; if ($zeugnisnote = new zeugnisnote($lvid, $row_stud->uid, $stsem)) @@ -1047,10 +1017,17 @@ echo " // Punkte if(CIS_GESAMTNOTE_PUNKTE) - echo ''; + { + //$punkte_lv = $punkte_vorschlag; + echo ''; + } // Noten DropDown - echo ''; echo ''; foreach($noten_obj->result as $row_note) { @@ -1119,7 +1096,7 @@ echo " $pr_le_id = $le_id_stud; if($pr_punkte!='') - $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.$pr_punkte.')'; + $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')'; else $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung']; diff --git a/include/moodle24_course.class.php b/include/moodle24_course.class.php index 1f92ec095..9b64ed246 100644 --- a/include/moodle24_course.class.php +++ b/include/moodle24_course.class.php @@ -660,7 +660,13 @@ class moodle24_course extends basis_db try { $client = new SoapClient($this->serverurl); - $response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id); + if(CIS_GESAMTNOTE_PUNKTE) + $type=2; // Prozentpunkte + else + $type=3; // Noten aufgrund Skala + // 1 = Punkte, 2 = Prozentpunkte, 3 = Note laut Skala + + $response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id, $type); if (count($response)>0) { @@ -682,7 +688,10 @@ class moodle24_course extends basis_db } } catch(SoapFault $e) - {} + { + //echo print_r($e, true); + //return false; + } } return true; diff --git a/system/moodlePlugin/fhcompletews/externallib.php b/system/moodlePlugin/fhcompletews/externallib.php index e332706aa..c43c520c3 100644 --- a/system/moodlePlugin/fhcompletews/externallib.php +++ b/system/moodlePlugin/fhcompletews/externallib.php @@ -32,7 +32,10 @@ class local_fhcompletews_external extends external_api public static function get_course_grades_parameters() { return new external_function_parameters( - array('courseid' => new external_value(PARAM_INT, 'CourseID')), 'ID of the Course' + array( + 'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'), + 'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala') + ), 'Get Course Grades' ); } @@ -41,7 +44,7 @@ class local_fhcompletews_external extends external_api * @param int courseid * @return array */ - public static function get_course_grades($courseid) + public static function get_course_grades($courseid, $type) { global $CFG, $DB; require_once($CFG->dirroot . "/course/lib.php"); @@ -49,9 +52,10 @@ class local_fhcompletews_external extends external_api //validate parameter $params = self::validate_parameters(self::get_course_grades_parameters(), - array('courseid' => $courseid)); + array('courseid' => $courseid, 'type'=>$type)); - $notenart=3; // 2=Prozent; 3=Endnote nach Skala + $notenart = $type; + //$notenart=3; // 1=Punkte, 2=Prozent; 3=Endnote nach Skala $gui=array(); $final_id=''; $data = array(); @@ -121,6 +125,10 @@ class local_fhcompletews_external extends external_api $gradestr = $export->format_grade($userdata->grades[$final_id]); $user_item['note']=$gradestr; + // Wenn Prozent dann Prozentzeichen entfernen + if(strpos($user_item['note'],'%')!==false) + $user_item['note']=trim(str_replace('%','',$user_item['note'])); + // nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist if($user_item['note']!='-') $data[]=$user_item; diff --git a/system/moodlePlugin/fhcompletews/lang/en/local_wstemplate.php b/system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php similarity index 100% rename from system/moodlePlugin/fhcompletews/lang/en/local_wstemplate.php rename to system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php diff --git a/system/moodlePlugin/fhcompletews/version.php b/system/moodlePlugin/fhcompletews/version.php index 09a673c71..39a6f7084 100644 --- a/system/moodlePlugin/fhcompletews/version.php +++ b/system/moodlePlugin/fhcompletews/version.php @@ -12,7 +12,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -$plugin->version = 2014030605; // The (date) version of this module + 2 extra digital for daily versions +$plugin->version = 2015020401; // The (date) version of this module + 2 extra digital for daily versions // This version number is displayed into /admin/forms.php // TODO: if ever this plugin get branched, the old branch number // will not be updated to the current date but just incremented. We will @@ -20,5 +20,5 @@ $plugin->version = 2014030605; // The (date) version of this module + 2 extra // display this version number with userdate (dev friendly) $plugin->requires = 2010112400; // Requires this Moodle version - at least 2.0 $plugin->cron = 0; -$plugin->release = '1.0 (Build: 2014030605)'; +$plugin->release = '1.2 (Build: 2015020401)'; $plugin->maturity = MATURITY_STABLE; diff --git a/system/moodlePlugin/fhcompletews25/externallib.php b/system/moodlePlugin/fhcompletews25/externallib.php index e0f343870..000607454 100644 --- a/system/moodlePlugin/fhcompletews25/externallib.php +++ b/system/moodlePlugin/fhcompletews25/externallib.php @@ -32,7 +32,10 @@ class local_fhcompletews_external extends external_api public static function get_course_grades_parameters() { return new external_function_parameters( - array('courseid' => new external_value(PARAM_INT, 'CourseID')), 'ID of the Course' + array( + 'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'), + 'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala') + ), 'Get Course Grades' ); } @@ -41,7 +44,7 @@ class local_fhcompletews_external extends external_api * @param int courseid * @return array */ - public static function get_course_grades($courseid) + public static function get_course_grades($courseid, $type) { global $CFG, $DB; require_once($CFG->dirroot . "/course/lib.php"); @@ -49,9 +52,10 @@ class local_fhcompletews_external extends external_api //validate parameter $params = self::validate_parameters(self::get_course_grades_parameters(), - array('courseid' => $courseid)); + array('courseid' => $courseid, 'type'=>$type)); - $notenart=3; // 2=Prozent; 3=Endnote nach Skala + $notenart = $type; + //$notenart=2; // 1=Punkte; 2=Prozent; 3=Endnote nach Skala $gui=array(); $final_id=''; $data = array(); @@ -72,12 +76,41 @@ class local_fhcompletews_external extends external_api $context = get_context_instance(CONTEXT_COURSE, $courseid); require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php'); - if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2)) + $moodle28=false; + + try + { + $method = new ReflectionMethod('grade_export_ods','__construct'); + + if(count($method->getParameters())==3) + $moodle28=true; + } + catch(ReflectionException $e) { - throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden"); - return false; } + if($moodle28) + { + //ab Moodle 2.8 hat grade_export_ods nur noch 3 Parameter + $formdata = new stdClass(); + $formdata->display=$notenart; + $formdata->itemids=0; + $formdata->decimals=2; + $formdata->export_feedback=false; + if (!$export = new grade_export_ods($course, 0, $formdata)) + { + throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden"); + return false; + } + } + else + { + if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2)) + { + throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden"); + return false; + } + } $grad =$export->columns; // Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten @@ -120,6 +153,10 @@ class local_fhcompletews_external extends external_api { $gradestr = $export->format_grade($userdata->grades[$final_id]); $user_item['note']=$gradestr; + + // Wenn Prozent dann Prozentzeichen entfernen + if(strpos($user_item['note'],'%')!==false) + $user_item['note']=trim(str_replace('%','',$user_item['note'])); // nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist if($user_item['note']!='-') diff --git a/system/moodlePlugin/fhcompletews25/lang/en/local_wstemplate.php b/system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php similarity index 86% rename from system/moodlePlugin/fhcompletews25/lang/en/local_wstemplate.php rename to system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php index 1d8ddd42e..4c72c54e4 100644 --- a/system/moodlePlugin/fhcompletews25/lang/en/local_wstemplate.php +++ b/system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php @@ -15,11 +15,11 @@ // along with Moodle. If not, see . /** - * Web service template plugin related strings - * @package localwstemplate + * plugin related strings + * @package localfhcompletws * @copyright 2011 Moodle Pty Ltd (http://moodle.com) * @author Jerome Mouneyrac * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -$string['pluginname'] = 'FH Complete Web service Plugin'; +$string['pluginname'] = 'FH-Complete Webservice Plugin'; diff --git a/system/moodlePlugin/fhcompletews25/version.php b/system/moodlePlugin/fhcompletews25/version.php index 2ad10a261..a30f1b594 100644 --- a/system/moodlePlugin/fhcompletews25/version.php +++ b/system/moodlePlugin/fhcompletews25/version.php @@ -12,7 +12,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -$plugin->version = 2014061103; // The (date) version of this module + 2 extra digital for daily versions +$plugin->version = 2015020404; // The (date) version of this module + 2 extra digital for daily versions // This version number is displayed into /admin/forms.php // TODO: if ever this plugin get branched, the old branch number // will not be updated to the current date but just incremented. We will @@ -20,5 +20,5 @@ $plugin->version = 2014061103; // The (date) version of this module + 2 extra // display this version number with userdate (dev friendly) $plugin->requires = 2013051400; // Requires this Moodle version - at least 2.5 $plugin->cron = 0; -$plugin->release = '1.1 (Build: 2014061103)'; +$plugin->release = '1.2 (Build: 2015020404)'; $plugin->maturity = MATURITY_STABLE;