Merge branch 'wip-MDL-47543-master' of git://github.com/marinaglancy/moodle

Conflicts:
	theme/bootstrapbase/less/moodle/grade.less
	theme/bootstrapbase/style/moodle.css
This commit is contained in:
Dan Poltawski
2014-10-08 15:49:58 +01:00
18 changed files with 103 additions and 149 deletions
+29 -43
View File
@@ -651,6 +651,10 @@ function grade_get_plugin_info($courseid, $active_type, $active_plugin) {
$plugin_info['report'] = $reports;
}
if ($settings = grade_helper::get_info_manage_settings($courseid)) {
$plugin_info['settings'] = $settings;
}
if ($scale = grade_helper::get_info_scales($courseid)) {
$plugin_info['scale'] = array('view'=>$scale);
}
@@ -685,16 +689,6 @@ function grade_get_plugin_info($courseid, $active_type, $active_plugin) {
}
}
// Hide course settings if we're not in a course
if ($settings = grade_helper::get_info_manage_settings($courseid)) {
$plugin_info['settings'] = $settings;
}
// Put preferences last
if ($preferences = grade_helper::get_plugins_report_preferences($courseid)) {
$plugin_info['preferences'] = $preferences;
}
foreach ($plugin_info as $plugin_type => $plugins) {
if (!empty($plugins->id) && $active_plugin == $plugins->id) {
$plugin_info['strings']['active_plugin_str'] = $plugins->string;
@@ -790,6 +784,11 @@ function print_grade_page_head($courseid, $active_type, $active_plugin=null,
$buttons=false, $shownavigation=true, $headerhelpidentifier = null, $headerhelpcomponent = null) {
global $CFG, $OUTPUT, $PAGE;
if ($active_type === 'preferences') {
// In Moodle 2.8 report preferences were moved under 'settings'. Allow backward compatibility for 3rd party grade reports.
$active_type = 'settings';
}
$plugin_info = grade_get_plugin_info($courseid, $active_type, $active_plugin);
// Determine the string of the active plugin
@@ -2416,6 +2415,13 @@ function grade_extend_settings($plugininfo, $courseid) {
}
}
if ($settings = grade_helper::get_info_manage_settings($courseid)) {
$settingsnode = $gradenode->add($strings['settings'], null, navigation_node::TYPE_CONTAINER);
foreach ($settings as $setting) {
$settingsnode->add($setting->string, $setting->link, navigation_node::TYPE_SETTING, null, $setting->id, new pix_icon('i/settings', ''));
}
}
if ($imports = grade_helper::get_plugins_import($courseid)) {
$importnode = $gradenode->add($strings['import'], null, navigation_node::TYPE_CONTAINER);
foreach ($imports as $import) {
@@ -2430,20 +2436,6 @@ function grade_extend_settings($plugininfo, $courseid) {
}
}
if ($settings = grade_helper::get_info_manage_settings($courseid)) {
$settingsnode = $gradenode->add($strings['settings'], null, navigation_node::TYPE_CONTAINER);
foreach ($settings as $setting) {
$settingsnode->add($setting->string, $setting->link, navigation_node::TYPE_SETTING, null, $setting->id, new pix_icon('i/settings', ''));
}
}
if ($preferences = grade_helper::get_plugins_report_preferences($courseid)) {
$preferencesnode = $gradenode->add(get_string('myreportpreferences', 'grades'), null, navigation_node::TYPE_CONTAINER);
foreach ($preferences as $preference) {
$preferencesnode->add($preference->string, $preference->link, navigation_node::TYPE_SETTING, null, $preference->id, new pix_icon('i/settings', ''));
}
}
if ($letters = grade_helper::get_info_letters($courseid)) {
$letters = array_shift($letters);
$gradenode->add($strings['letter'], $letters->link, navigation_node::TYPE_SETTING, null, $letters->id, new pix_icon('i/settings', ''));
@@ -2556,8 +2548,7 @@ abstract class grade_helper {
'letter' => get_string('letters', 'grades'),
'export' => get_string('export', 'grades'),
'import' => get_string('import'),
'preferences' => get_string('mypreferences', 'grades'),
'settings' => get_string('settings')
'settings' => get_string('edittree', 'grades')
);
}
return self::$pluginstrings;
@@ -2598,12 +2589,18 @@ abstract class grade_helper {
$context = context_course::instance($courseid);
self::$managesetting = array();
if ($courseid != SITEID && has_capability('moodle/grade:manage', $context)) {
self::$managesetting['categoriesanditems'] = new grade_plugin_info('setup',
new moodle_url('/grade/edit/tree/index.php', array('id' => $courseid)),
get_string('categoriesanditems', 'grades'));
self::$managesetting['coursesettings'] = new grade_plugin_info('coursesettings',
new moodle_url('/grade/edit/settings/index.php', array('id'=>$courseid)),
get_string('coursegradesettings', 'grades'));
self::$managesetting['setup'] = new grade_plugin_info('setup',
new moodle_url('/grade/edit/tree/index.php', array('id' => $courseid)),
get_string('setupgradeslayout', 'grades'));
}
if (self::$gradereportpreferences === null) {
self::get_plugins_reports($courseid);
}
if (self::$gradereportpreferences) {
self::$managesetting = array_merge(self::$managesetting, self::$gradereportpreferences);
}
return self::$managesetting;
}
@@ -2640,7 +2637,8 @@ abstract class grade_helper {
// Add link to preferences tab if such a page exists
if (file_exists($plugindir.'/preferences.php')) {
$url = new moodle_url('/grade/report/'.$plugin.'/preferences.php', array('id'=>$courseid));
$gradepreferences[$plugin] = new grade_plugin_info($plugin, $url, $pluginstr);
$gradepreferences[$plugin] = new grade_plugin_info($plugin, $url,
get_string('mypreferences', 'grades') . ': ' . $pluginstr);
}
}
if (count($gradereports) == 0) {
@@ -2657,19 +2655,7 @@ abstract class grade_helper {
self::$gradereportpreferences = $gradepreferences;
return self::$gradereports;
}
/**
* Returns an array of grade plugin report preferences for plugin reports that
* support preferences
* @param int $courseid
* @return array
*/
public static function get_plugins_report_preferences($courseid) {
if (self::$gradereportpreferences !== null) {
return self::$gradereportpreferences;
}
self::get_plugins_reports($courseid);
return self::$gradereportpreferences;
}
/**
* Get information on scales
* @param int $courseid