[moodle] / contrib / plugins / grade / report / visual / visualizations / visual_grade_distribution.php Repository:

Diff of /contrib/plugins/grade/report/visual/visualizations/visual_grade_distribution.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Thu Jul 24 15:31:45 2008 WST revision 1.2, Sat Aug 2 12:19:16 2008 WST

By dservos:

CONTRIB-497 *Added more visualizations *Added selector UI Widget for flex/flare visualization *Refactored some of flex actionscript code. *Added defaults for selected group and items in visualizations. *Improved removal of nodes and edges when an item or group is deselected in a legend. *Fixed a memory leak realting to the removal and addtion of nodes. *Added more options for and control of the flex/flare based visualization from the Moodle back end.

# Line 4  Line 4 
4  class grade_distribution extends visualization {  class grade_distribution extends visualization {
5      const RANGE = 10;      const RANGE = 10;
6    
7        public $percent = true;
8    
9      public $colorencodernode;      public $colorencodernode;
10    
11      public $colorencoderedge;      public $colorencoderedge;
# Line 29  Line 31 
31          $this->xaxis = 'grade';          $this->xaxis = 'grade';
32          $this->yaxis = 'students';          $this->yaxis = 'students';
33          $this->xaxislabelformat = '0\\%';          $this->xaxislabelformat = '0\\%';
34    
35            if($this->percent) {
36                $this->yaxislabelformat = '0\\%';
37                $this->yaxislabel =  get_string('percentstudents', 'gradereport_visual');
38            } else {
39                $this->yaxislabel =  get_string('numberstudents', 'gradereport_visual');
40            }
41    
42          //$this->xaxismax = 100 + grade_distribution::RANGE;          //$this->xaxismax = 100 + grade_distribution::RANGE;
43          //$this->xaxismin = grade_distribution::RANGE;          //$this->xaxismin = grade_distribution::RANGE;
44          $this->xaxisxoffset = -27;          $this->xaxisxoffset = -27;
45    
46          $this->xaxislabel =  get_string('grade', 'gradereport_visual');          $this->xaxislabel =  get_string('grade', 'gradereport_visual');
         $this->yaxislabel =  get_string('numberstudents', 'gradereport_visual');  
47          $this->title = get_string('gradedistribution:title', 'gradereport_visual');          $this->title = get_string('gradedistribution:title', 'gradereport_visual');
48    
49          $this->capabilities = null;          $this->capabilities = null;
# Line 45  Line 54 
54          $this->shapeencodernode = new encoder(encoder::ENCODER_SHAPE, 'group', array(1));          $this->shapeencodernode = new encoder(encoder::ENCODER_SHAPE, 'group', array(1));
55          $this->encoders = array($this->colorencodernode, $this->colorencoderedge, $this->shapeencodernode);          $this->encoders = array($this->colorencodernode, $this->colorencoderedge, $this->shapeencodernode);
56    
57          $this->grouplegend = new legend($this->shapeencodernode);          $this->grouplegend = new legend($this->shapeencodernode, array(get_string('allgroups', 'gradereport_visual')));
58          $this->itemlegend = new legend($this->colorencodernode);          $this->itemlegend = new legend($this->colorencodernode, array(get_string('coursetotal', 'grades')));
59          $this->legends = array($this->itemlegend, $this->grouplegend);          $this->legends = array($this->itemlegend, $this->grouplegend);
60      }      }
61    
# Line 69  Line 78 
78                  if($studentdata != null && $studentdata->finalgrade != null) {                  if($studentdata != null && $studentdata->finalgrade != null) {
79                      foreach(groups_get_user_groups($visualreport->courseid, $studentkey) as $grouping) {                      foreach(groups_get_user_groups($visualreport->courseid, $studentkey) as $grouping) {
80                          $gradelevel = floor(round($studentdata->standardise_score($studentdata->finalgrade, $visualreport->gtree->items[$itemkey]->grademin, $visualreport->gtree->items[$itemkey]->grademax, 0, 100)) / grade_distribution::RANGE);                          $gradelevel = floor(round($studentdata->standardise_score($studentdata->finalgrade, $visualreport->gtree->items[$itemkey]->grademin, $visualreport->gtree->items[$itemkey]->grademax, 0, 100)) / grade_distribution::RANGE);
81                          if($gradelevel == $rangesize) {                          //if($gradelevel == $rangesize) {
82                              $gradelevel = $rangesize - 1;                          //    $gradelevel = $rangesize - 1;
83                          }                          //}
84    
85                          if(count($grouping) > 0) {                          if(count($grouping) > 0) {
86                              foreach($grouping as $group) {                              foreach($grouping as $group) {
# Line 116  Line 125 
125                  }                  }
126              }              }
127    
128              for($i = 0; $i < $rangesize; $i++) {              for($i = 0; $i <= $rangesize; $i++) {
129                  foreach(groups_get_all_groups($visualreport->courseid) as $group) {                  foreach(groups_get_all_groups($visualreport->courseid) as $group) {
130                      if(!isset($rawdata[$i][$itemkey][$group->id])) {                      if(!isset($rawdata[$i][$itemkey][$group->id])) {
131                          $rawdata[$i][$itemkey][$group->id] = 0;                          $rawdata[$i][$itemkey][$group->id] = 0;
# Line 140  Line 149 
149              foreach($items as $itemkey=>$groups) {              foreach($items as $itemkey=>$groups) {
150                  foreach($groups as $groupkey=>$students) {                  foreach($groups as $groupkey=>$students) {
151                      $index = $gradelevel * 10000 + $i;                      $index = $gradelevel * 10000 + $i;
152                      $data[$index]['students'] =  $students;  
153                      //$data[$index]['gradelevel'] = $gradelevel;                      //$data[$index]['gradelevel'] = $gradelevel;
154    
155                        if($this->percent) {
156                            $data[$index]['students'] =  ($students / $counters[$itemkey][$groupkey]) * 100;
157                        } else {
158                            $data[$index]['students'] =  $students;
159                        }
160    
161                      $data[$index]['grade'] = $gradelevel * grade_distribution::RANGE; //($gradelevel * grade_distribution::RANGE) . '% - ' . (($gradelevel + 1) * grade_distribution::RANGE - 1) . '%';                      $data[$index]['grade'] = $gradelevel * grade_distribution::RANGE; //($gradelevel * grade_distribution::RANGE) . '% - ' . (($gradelevel + 1) * grade_distribution::RANGE - 1) . '%';
162    
163                      $data[$index]['item'] = $visualreport->gtree->items[$itemkey]->get_name();                      $data[$index]['item'] = $visualreport->gtree->items[$itemkey]->get_name();
164                      if($groupkey == 'ng') {                      if($groupkey == 'ng') {
165                          $data[$index]['group'] = get_string('nogroup', 'gradereport_visual');                          $data[$index]['group'] = get_string('nogroup', 'gradereport_visual');

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Moodle CVS Admin
ViewVC Help
Powered by ViewVC 1.0.7