Calculate the sum of statuses for each user
authorNadav Kavalerchik <nadavkav@gmail.com>
Mon, 20 Jan 2014 16:51:36 +0000 (18:51 +0200)
committerNadav Kavalerchik <nadavkav@gmail.com>
Mon, 20 Jan 2014 16:51:36 +0000 (18:51 +0200)
Hi Dan,

Please review this little patch that sum up the number of each status occurrence for each user, and display it at the bottom of the attendance table.

Nadav :-)

renderer.php

index ab1983f..42bba70 100755 (executable)
@@ -320,7 +320,20 @@ class mod_attendance_renderer extends plugin_renderer_base {
         $table .= html_writer::tag('center', html_writer::empty_tag('input', $params));
         $table = html_writer::tag('form', $table, array('method' => 'post', 'action' => $takedata->url_path()));
 
-        return $controls.$table;
+        // Calculate the sum of statuses for each user
+        $sessionstats[] = array();
+        foreach ($takedata->sessionlog as $userlog) {
+            foreach($takedata->statuses as $status) {
+                if ($userlog->statusid == $status->id) $sessionstats[$status->id]++;
+            }
+        }
+
+        $statsoutput = '<br/>';
+        foreach($takedata->statuses as $status) {
+            $statsoutput .= "$status->description = ".$sessionstats[$status->id]." <br/>";
+        }
+
+        return $controls.$table.$statsoutput;
     }
 
     protected function render_attendance_take_controls(attendance_take_data $takedata) {