MDL-66790 quizreport: Prevent sorting for checkbox column
authorJun Pataleta <jun@moodle.com>
Tue, 15 Oct 2019 06:50:06 +0000 (14:50 +0800)
committerJun Pataleta <jun@moodle.com>
Tue, 15 Oct 2019 09:25:16 +0000 (17:25 +0800)
mod/quiz/report/attemptsreport_table.php
mod/quiz/report/overview/report.php
mod/quiz/report/responses/report.php
mod/quiz/report/upgrade.txt

index 787032b..c0b798a 100644 (file)
@@ -657,11 +657,15 @@ abstract class quiz_attempts_report_table extends table_sql {
      *
      * It returns the HTML for a master \core\output\checkbox_toggleall component that selects/deselects all quiz attempts.
      *
+     * @param string $columnname The name of the checkbox column.
      * @return string
      */
-    public function checkbox_col_header() {
+    public function checkbox_col_header(string $columnname) {
         global $OUTPUT;
 
+        // Make sure to disable sorting on this column.
+        $this->no_sorting($columnname);
+
         // Build the select/deselect all control.
         $selectallid = $this->uniqueid . '-selectall-attempts';
         $selectalltext = get_string('selectall', 'quiz');
index 7627fbe..50e752b 100644 (file)
@@ -172,8 +172,9 @@ class quiz_overview_report extends quiz_attempts_report {
             $headers = array();
 
             if (!$table->is_downloading() && $options->checkboxcolumn) {
-                $columns[] = 'checkbox';
-                $headers[] = $table->checkbox_col_header();
+                $columnname = 'checkbox';
+                $columns[] = $columnname;
+                $headers[] = $table->checkbox_col_header($columnname);
             }
 
             $this->add_user_columns($table, $columns, $headers);
index 38ee776..89f1d6e 100644 (file)
@@ -141,8 +141,9 @@ class quiz_responses_report extends quiz_attempts_report {
             $headers = array();
 
             if (!$table->is_downloading() && $options->checkboxcolumn) {
-                $columns[] = 'checkbox';
-                $headers[] = $table->checkbox_col_header();
+                $columnname = 'checkbox';
+                $columns[] = $columnname;
+                $headers[] = $table->checkbox_col_header($columnname);
             }
 
             $this->add_user_columns($table, $columns, $headers);
index cbd4b93..9c006f2 100644 (file)
@@ -2,6 +2,13 @@ This files describes API changes for quiz report plugins.
 
 Overview of this plugin type at http://docs.moodle.org/dev/Quiz_reports
 
+=== 3.8 ===
+
+* New quiz_attempts_report_table method: \quiz_attempts_report_table::checkbox_col_header()
+  This generates a column header containing a checkbox that toggles the checked state of all the checkboxes corresponding to the
+  entries listed on a given quiz report table. It requires the name of the checkbox column as a parameter in order to disable
+  sorting on the checkbox column.
+
 === 3.2 ===
 
 * A code refactoring based on new sql functions in MDL-31243 and removing