Bei der Notenübernahme aus Moodle wird nun ein zusätzlicher Parameter übergeben der angibt ob Noten oder Prozentpunkte übernommen werden sollen.

Moodle Plugin erweitert für die Verwendung mit Moodle 2.8
This commit is contained in:
oesi
2015-02-05 08:28:09 +01:00
parent a4cca5f1e6
commit 52addd5738
9 changed files with 109 additions and 78 deletions
@@ -45,4 +45,4 @@ switch($work)
echo $note;
exit;
}
?>
?>
@@ -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 '<td class="tdwidth10">&nbsp;</td>';
echo "<td>";
echo "<b>".$lv_obj->bezeichnung_arr[$sprache]."</b>";
// 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 "<span class='error'>".$lvgesamtnote->errormsg."</span>";
}
*/
// 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 '<input type="text" name="punkte" id="textbox-punkte-'.$i.'" value="'.$punkte_lv.'" size="3" oninput="PunkteEingabe('.$i.')"/>';
{
//$punkte_lv = $punkte_vorschlag;
echo '<input type="text" name="punkte" id="textbox-punkte-'.$i.'" value="'.$punkte_vorschlag.'" size="3" oninput="PunkteEingabe('.$i.')"/>';
}
// Noten DropDown
echo '<select name="note" id="dropdown-note-'.$i.'">';
if($punkte_vorschlag!='' && CIS_GESAMTNOTE_PUNKTE)
$disabled='disabled="disabled"';
else
$disabled='';
echo '<select name="note" id="dropdown-note-'.$i.'" '.$disabled.'>';
echo '<option value="">-- keine Auswahl --</option>';
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'];
+11 -2
View File
@@ -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;
@@ -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;
+2 -2
View File
@@ -12,7 +12,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
$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;
@@ -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']!='-')
@@ -15,11 +15,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* 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';
@@ -12,7 +12,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
$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;