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-24 11:01:31 +01:00
parent a4cca5f1e6
commit 52addd5738
9 changed files with 109 additions and 78 deletions
@@ -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;