MDL-36509: Assignment grading table rownum offset is wrong by one.
authorDamyon Wiese <damyon.wiese@netspot.com.au>
Tue, 13 Nov 2012 00:51:00 +0000 (08:51 +0800)
committerDamyon Wiese <damyon.wiese@netspot.com.au>
Tue, 13 Nov 2012 01:58:08 +0000 (09:58 +0800)
mod/assign/gradingtable.php

index 53291dc..80675c6 100644 (file)
@@ -317,6 +317,22 @@ class assign_grading_table extends table_sql implements renderable {
         }
     }
 
+    /**
+     * Before adding each row to the table make sure rownum is incremented
+     *
+     * @param array $row row of data from db used to make one row of the table.
+     * @return array one row for the table
+     */
+    function format_row($row) {
+        if ($this->rownum < 0) {
+            $this->rownum = $this->currpage * $this->pagesize;
+        } else {
+            $this->rownum += 1;
+        }
+
+        return parent::format_row($row);
+    }
+
     /**
      * Add a column with an ID that uniquely identifies this user in this assignment
      *
@@ -491,7 +507,7 @@ class assign_grading_table extends table_sql implements renderable {
 
 
     /**
-     * Format a user picture for display (and update rownum as a sideeffect)
+     * Format a user picture for display
      *
      * @param stdClass $row
      * @return string
@@ -686,11 +702,6 @@ class assign_grading_table extends table_sql implements renderable {
      */
     function col_userid(stdClass $row) {
         $edit = '';
-        if ($this->rownum < 0) {
-            $this->rownum = $this->currpage * $this->pagesize;
-        } else {
-            $this->rownum += 1;
-        }
 
         $actions = array();