Merge branch 'MDL-28282-master' of git://github.com/ankitagarwal/moodle
authorSam Hemelryk <sam@moodle.com>
Wed, 7 Dec 2011 21:22:34 +0000 (10:22 +1300)
committerSam Hemelryk <sam@moodle.com>
Wed, 7 Dec 2011 21:22:34 +0000 (10:22 +1300)
1  2 
mod/scorm/report/basic/report.php

@@@ -43,6 -43,8 +43,8 @@@ class scorm_basic_report extends scorm_
                  echo $OUTPUT->notification(get_string('scormresponsedeleted', 'scorm'), 'notifysuccess');
              }
          }
+         // find out current groups mode
+         $currentgroup = groups_get_activity_group($cm, true);
  
          // detailed report
          $mform = new mod_scorm_report_settings($PAGE->url, compact('currentgroup'));
@@@ -84,7 -86,7 +86,7 @@@
                  $nostudents = true;
                  $allowedlist = '';
              } else {
 -                $allowedlist = join(',', array_keys($students));
 +                $allowedlist = array_keys($students);
              }
          } else {
              // all users who can attempt scoes and who are in the currently selected group
@@@ -93,7 -95,7 +95,7 @@@
                  $nostudents = true;
                  $groupstudents = array();
              }
 -            $allowedlist = join(',', array_keys($groupstudents));
 +            $allowedlist = array_keys($groupstudents);
          }
  
          if ( !$nostudents ) {
                  header("Pragma: public");
                  echo implode("\t", $headers)." \n";
              }
 -
 +            $params = array();
 +            list($usql, $params) = $DB->get_in_or_equal($allowedlist, SQL_PARAMS_NAMED);
                              // Construct the SQL
              $select = 'SELECT DISTINCT '.$DB->sql_concat('u.id', '\'#\'', 'COALESCE(st.attempt, 0)').' AS uniqueid, ';
              $select .= 'st.scormid AS scormid, st.attempt AS attempt, ' .
              switch ($attemptsmode) {
                  case SCORM_REPORT_ATTEMPTS_STUDENTS_WITH:
                      // Show only students with attempts
 -                    $where = ' WHERE u.id IN (' .$allowedlist. ') AND st.userid IS NOT NULL';
 +                    $where = ' WHERE u.id ' .$usql. ' AND st.userid IS NOT NULL';
                      break;
                  case SCORM_REPORT_ATTEMPTS_STUDENTS_WITH_NO:
                      // Show only students without attempts
 -                    $where = ' WHERE u.id IN (' .$allowedlist. ') AND st.userid IS NULL';
 +                    $where = ' WHERE u.id ' .$usql. ' AND st.userid IS NULL';
                      break;
                  case SCORM_REPORT_ATTEMPTS_ALL_STUDENTS:
                      // Show all students with or without attempts
 -                    $where = ' WHERE u.id IN (' .$allowedlist. ') AND (st.userid IS NOT NULL OR st.userid IS NULL)';
 +                    $where = ' WHERE u.id ' .$usql. ' AND (st.userid IS NOT NULL OR st.userid IS NULL)';
                      break;
              }
  
              $countsql .= 'COUNT(DISTINCT('.$DB->sql_concat('u.id', '\'#\'', 'st.attempt').')) AS nbattempts, ';
              $countsql .= 'COUNT(DISTINCT(u.id)) AS nbusers ';
              $countsql .= $from.$where;
 -            $params = array();
  
              if (!$download) {
                  $sort = $table->get_sql_sort();
                  }
  
                  if (!empty($countsql)) {
 -                    $count = $DB->get_record_sql($countsql);
 +                    $count = $DB->get_record_sql($countsql, $params);
                      $totalinitials = $count->nbresults;
                      if ($twhere) {
                          $countsql .= ' AND '.$twhere;