From 35079f539ce5416b6e58b903088044f28f4ddd98 Mon Sep 17 00:00:00 2001 From: skodak <skodak> Date: Thu, 30 Apr 2009 08:07:43 +0000 Subject: [PATCH] MDL-18951 standardised group support in grader report (not complete yet) --- grade/report/grader/lib.php | 17 ++++------------- grade/report/grader/preferences_form.php | 1 - grade/report/grader/settings.php | 3 --- grade/report/lib.php | 22 +++++++++++++++------- lib/db/upgrade.php | 5 +++++ version.php | 2 +- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index ae6d98d526..a8b95db6bb 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -144,10 +144,7 @@ class grade_report_grader extends grade_report { $this->pbarurl = 'index.php?id='.$this->courseid.$perpage.'&'; - // Setup groups if requested - if ($this->get_pref('showgroups')) { - $this->setup_groups(); - } + $this->setup_groups(); $this->setup_sortitemid(); } @@ -430,12 +427,6 @@ class grade_report_grader extends grade_report { $html .= $this->print_toggle('averages', true); } - if (has_capability('moodle/grade:viewall', $this->context) - and has_capability('moodle/site:accessallgroups', $this->context) - and ($course_has_groups = true)) { // TODO replace that last condition with proper check - $html .= $this->print_toggle('groups', true); - } - $html .= $this->print_toggle('ranges', true); if (!empty($CFG->enableoutcomes)) { $html .= $this->print_toggle('nooutcomes', true); @@ -1024,10 +1015,10 @@ class grade_report_grader extends grade_report { // Averages heading $straverage_group = get_string('groupavg', 'grades'); - $showaverages_group = $this->currentgroup && $this->get_pref('showgroups'); $straverage = get_string('overallaverage', 'grades'); $showaverages = $this->get_pref('showaverages'); - + $showaverages_group = $this->currentgroup && $showaverages; + if ($showaverages_group) { $studentshtml .= '<tr class="groupavg r'.$this->rowcount++.'"><th class="header c0" '.$colspan.'scope="row">'.$straverage_group.'</th></tr>'; } @@ -1075,7 +1066,7 @@ class grade_report_grader extends grade_report { if ($grouponly) { $straverage = get_string('groupavg', 'grades'); - $showaverages = $this->currentgroup && $this->get_pref('showgroups'); + $showaverages = $this->currentgroup && $this->get_pref('showaverages'); $groupsql = $this->groupsql; $groupwheresql = $this->groupwheresql; $groupwheresql_params = $this->groupwheresql_params; diff --git a/grade/report/grader/preferences_form.php b/grade/report/grader/preferences_form.php index 1fded3d5cc..bbd6041b51 100644 --- a/grade/report/grader/preferences_form.php +++ b/grade/report/grader/preferences_form.php @@ -72,7 +72,6 @@ class grader_report_preferences_form extends moodleform { if ($canviewhidden) { $preferences['prefshow']['showaverages'] = $checkbox_default; } - $preferences['prefshow']['showgroups'] = $checkbox_default; $preferences['prefshow']['showlocks'] = $checkbox_default; $preferences['prefrows'] = array( diff --git a/grade/report/grader/settings.php b/grade/report/grader/settings.php index e7031b0312..dd9254be31 100644 --- a/grade/report/grader/settings.php +++ b/grade/report/grader/settings.php @@ -65,9 +65,6 @@ $settings->add(new admin_setting_configcheckbox('grade_report_showeyecons', get_ $settings->add(new admin_setting_configcheckbox('grade_report_showaverages', get_string('showaverages', 'grades'), get_string('configshowaverages', 'grades'), 1)); -$settings->add(new admin_setting_configcheckbox('grade_report_showgroups', get_string('showgroups', 'grades'), - get_string('configshowgroups', 'grades'), 0)); - $settings->add(new admin_setting_configcheckbox('grade_report_showlocks', get_string('showlocks', 'grades'), get_string('configshowlocks', 'grades'), 0)); diff --git a/grade/report/lib.php b/grade/report/lib.php index b733d80104..28fac73180 100755 --- a/grade/report/lib.php +++ b/grade/report/lib.php @@ -108,6 +108,12 @@ abstract class grade_report { */ public $currentgroup; + /** + * Current course group mode + * @var int $groupmode + */ + var $groupmode; + /** * A HTML select element used to select the current group. * @var string $group_selector @@ -298,13 +304,15 @@ abstract class grade_report { */ protected function setup_groups() { /// find out current groups mode - $this->group_selector = groups_print_course_menu($this->course, $this->pbarurl, true); - $this->currentgroup = groups_get_course_group($this->course); - - if ($this->currentgroup) { - $this->groupsql = " JOIN {groups_members} gm ON gm.userid = u.id "; - $this->groupwheresql = " AND gm.groupid = :gr_grpid "; - $this->groupwheresql_params = array('gr_grpid'=>$this->currentgroup); + if ($this->groupmode = groups_get_course_groupmode($this->course)) { + $this->group_selector = groups_print_course_menu($this->course, $this->pbarurl, true); + $this->currentgroup = groups_get_course_group($this->course); + + if ($this->currentgroup) { + $this->groupsql = " JOIN {groups_members} gm ON gm.userid = u.id "; + $this->groupwheresql = " AND gm.groupid = :gr_grpid "; + $this->groupwheresql_params = array('gr_grpid'=>$this->currentgroup); + } } } diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 9100388e2b..394e1ff12e 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1703,6 +1703,11 @@ WHERE gradeitemid IS NOT NULL AND grademax IS NOT NULL"); upgrade_main_savepoint($result, 2009042700); } + if ($result && $oldversion < 2009043000) { + unset_config('grade_report_showgroups'); + upgrade_main_savepoint($result, 2009043000); + } + return $result; } diff --git a/version.php b/version.php index fd6be69fd2..ef8ab18ce7 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2009042700; // YYYYMMDD = date of the last version bump + $version = 2009043000; // YYYYMMDD = date of the last version bump // XX = daily increments $release = '2.0 dev (Build: 20090430)'; // Human-friendly version name -- 2.39.5