Merge branch 'MDL-52573-master' of git://github.com/danpoltawski/moodle
authorAndrew Nicols <andrew@nicols.co.uk>
Mon, 18 Jan 2016 06:32:41 +0000 (14:32 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Mon, 18 Jan 2016 06:32:41 +0000 (14:32 +0800)
1  2 
grade/report/grader/lib.php

@@@ -589,9 -589,16 +589,16 @@@ class grade_report_grader extends grade
          $rows = array();
  
          $showuserimage = $this->get_pref('showuserimage');
-         $canseeuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
-         $canseesingleview = has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
+         // FIXME: MDL-52678 This get_capability_info is hacky and we should have an API for inserting grade row links instead.
+         $canseeuserreport = false;
+         $canseesingleview = false;
+         if (get_capability_info('gradereport/'.$CFG->grade_profilereport.':view')) {
+             $canseeuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
+         }
+         if (get_capability_info('gradereport/singleview:view')) {
+             $canseesingleview = has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
              'moodle/grade:edit'), $this->context);
+         }
          $hasuserreportcell = $canseeuserreport || $canseesingleview;
  
          $strfeedback  = $this->get_lang_string("feedback");
                      }
  
                      $singleview = '';
-                     if (has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
-                         'moodle/grade:edit'), $this->context)) {
-                         $url = new moodle_url('/grade/report/singleview/index.php', array(
-                             'id' => $this->course->id,
-                             'item' => 'grade',
-                             'itemid' => $element['object']->id));
-                         $singleview = $OUTPUT->action_icon(
-                             $url,
-                             new pix_icon('t/editstring', get_string('singleview', 'grades', $element['object']->get_name()))
-                         );
+                     // FIXME: MDL-52678 This is extremely hacky we should have an API for inserting grade column links.
+                     if (get_capability_info('gradereport/singleview:view')) {
+                         if (has_all_capabilities(array('gradereport/singleview:view', 'moodle/grade:viewall',
+                             'moodle/grade:edit'), $this->context)) {
+                             $url = new moodle_url('/grade/report/singleview/index.php', array(
+                                 'id' => $this->course->id,
+                                 'item' => 'grade',
+                                 'itemid' => $element['object']->id));
+                             $singleview = $OUTPUT->action_icon(
+                                 $url,
+                                 new pix_icon('t/editstring', get_string('singleview', 'grades', $element['object']->get_name()))
+                             );
+                         }
                      }
  
                      $itemcell->colspan = $colspan;
       * Given a category element returns collapsing +/- icon if available
       *
       * @deprecated since Moodle 2.9 MDL-46662 - please do not use this function any more.
 -     * @todo MDL-49021 This will be deleted in Moodle 3.1
 -     * @see grade_report_grader::get_course_header()
 -     * @param object $element
 -     * @return string HTML
       */
      protected function get_collapsing_icon($element) {
 -        global $OUTPUT;
 -        debugging('get_collapsing_icon is deprecated, please use get_course_header instead.', DEBUG_DEVELOPER);
 -
 -        $icon = '';
 -        // If object is a category, display expand/contract icon
 -        if ($element['type'] == 'category') {
 -            // Load language strings
 -            $strswitchminus = $this->get_lang_string('aggregatesonly', 'grades');
 -            $strswitchplus  = $this->get_lang_string('gradesonly', 'grades');
 -            $strswitchwhole = $this->get_lang_string('fullmode', 'grades');
 -
 -            $url = new moodle_url($this->gpr->get_return_url(null, array('target'=>$element['eid'], 'sesskey'=>sesskey())));
 -
 -            if (in_array($element['object']->id, $this->collapsed['aggregatesonly'])) {
 -                $url->param('action', 'switch_plus');
 -                $icon = $OUTPUT->action_icon($url, new pix_icon('t/switch_plus', $strswitchplus));
 -
 -            } else if (in_array($element['object']->id, $this->collapsed['gradesonly'])) {
 -                $url->param('action', 'switch_whole');
 -                $icon = $OUTPUT->action_icon($url, new pix_icon('t/switch_whole', $strswitchwhole));
 -
 -            } else {
 -                $url->param('action', 'switch_minus');
 -                $icon = $OUTPUT->action_icon($url, new pix_icon('t/switch_minus', $strswitchminus));
 -            }
 -        }
 -        return $icon;
 +        throw new coding_exception('get_collapsing_icon() can not be used any more, please use get_course_header() instead.');
      }
  
      /**