MDL-45758 tool_monitor: Modifiy manager classes to return instances
authorAnkit Agarwal <ankit@moodle.com>
Wed, 1 Oct 2014 08:20:25 +0000 (13:50 +0530)
committerAnkit Agarwal <ankit@moodle.com>
Wed, 15 Oct 2014 02:11:05 +0000 (07:41 +0530)
Original issue - MDL-46132

admin/tool/monitor/classes/output/managerules/renderable.php
admin/tool/monitor/classes/output/managesubs/rules.php
admin/tool/monitor/classes/output/managesubs/subs.php
admin/tool/monitor/classes/rule_manager.php
admin/tool/monitor/classes/subscription_manager.php

index c2d9586..8534d1b 100644 (file)
@@ -192,9 +192,7 @@ class renderable extends \table_sql implements \renderable {
         $this->pagesize($pagesize, $total);
         $rules = \tool_monitor\rule_manager::get_rules_by_courseid($this->courseid, $this->get_page_start(),
                 $this->get_page_size());
-        foreach ($rules as $rule) {
-            $this->rawdata[] = \tool_monitor\rule_manager::get_rule($rule);
-        }
+        $this->rawdata = $rules;
         // Set initial bars.
         if ($useinitialsbar) {
             $this->initialbars($total > $pagesize);
index b4e7ace..d655a43 100644 (file)
@@ -137,9 +137,7 @@ class rules extends \table_sql implements \renderable {
         $this->pagesize($pagesize, $total);
         $rules = \tool_monitor\rule_manager::get_rules_by_courseid($this->courseid, $this->get_page_start(),
                 $this->get_page_size());
-        foreach ($rules as $rule) {
-            $this->rawdata[] = \tool_monitor\rule_manager::get_rule($rule);
-        }
+        $this->rawdata = $rules;
         // Set initial bars.
         if ($useinitialsbar) {
             $this->initialbars($total > $pagesize);
index 493f96b..1e93786 100644 (file)
@@ -144,9 +144,7 @@ class subs extends \table_sql implements \renderable {
         $this->pagesize($pagesize, $total);
         $subs = \tool_monitor\subscription_manager::get_user_subscriptions_for_course($this->courseid, $this->get_page_start(),
                 $this->get_page_size());
-        foreach ($subs as $subscription) {
-            $this->rawdata[] = \tool_monitor\subscription_manager::get_subscription($subscription->id);
-        }
+        $this->rawdata = $subs;
         // Set initial bars.
         if ($useinitialsbar) {
             $this->initialbars($total > $pagesize);
index 97ca8c5..864451c 100644 (file)
@@ -142,7 +142,8 @@ class rule_manager {
     public static function get_rules_by_courseid($courseid, $limitfrom = 0, $limitto = 0) {
         global $DB;
         $select = "courseid = ? OR courseid = ?";
-        return $DB->get_records_select('tool_monitor_rules', $select, array(0, $courseid), null, '*', $limitfrom, $limitto);
+        return self::get_instances($DB->get_records_select('tool_monitor_rules', $select, array(0, $courseid), null, '*',
+                $limitfrom, $limitto));
     }
 
     /**
@@ -167,7 +168,7 @@ class rule_manager {
      */
     public static function get_rules_by_plugin($plugin) {
         global $DB;
-        return $DB->get_records('tool_monitor_rules', array('plugin' => $plugin));
+        return self::get_instances($DB->get_records('tool_monitor_rules', array('plugin' => $plugin)));
     }
 
     /**
@@ -179,6 +180,21 @@ class rule_manager {
      */
     public static function get_rules_by_event($eventname) {
         global $DB;
-        return $DB->get_records('tool_monitor_rules', array('eventname' => $eventname));
+        return self::get_instances($DB->get_records('tool_monitor_rules', array('eventname' => $eventname)));
+    }
+
+    /**
+     * Helper method to convert db records to instances.
+     *
+     * @param array $arr of rules.
+     *
+     * @return array of rules as instances.
+     */
+    protected static function get_instances($arr) {
+        $result = array();
+        foreach ($arr as $key => $sub) {
+            $result[$key] = new rule($sub);
+        }
+        return $result;
     }
 }
index 5c3e5ef..c7b67c5 100644 (file)
@@ -136,7 +136,8 @@ class subscription_manager {
         $sql = self::get_subscription_join_rule_sql();
         $sql .= "WHERE s.courseid = :courseid AND s.userid = :userid ORDER BY $order";
 
-        return $DB->get_records_sql($sql, array('courseid' => $courseid, 'userid' => $userid), $limitfrom, $limitto);
+        return self::get_instances($DB->get_records_sql($sql, array('courseid' => $courseid, 'userid' => $userid), $limitfrom,
+                $limitto));
     }
 
     /**
@@ -158,7 +159,6 @@ class subscription_manager {
         return $DB->count_records_sql($sql, array('courseid' => $courseid, 'userid' => $userid));
     }
 
-
     /**
      * Return a list of subscriptions for a given event.
      *
@@ -177,7 +177,7 @@ class subscription_manager {
             $sql .= "WHERE r.eventname = :eventname AND (s.courseid = :courseid OR s.courseid = 0)";
             $params = array('eventname' => $event->eventname, 'courseid' => $event->courseid);
         }
-        return $DB->get_records_sql($sql, $params);
+        return self::get_instances($DB->get_records_sql($sql, $params));
     }
 
     /**
@@ -187,7 +187,7 @@ class subscription_manager {
      *
      * @return string the sql.
      */
-    public static function get_subscription_join_rule_sql($count = false) {
+    protected static function get_subscription_join_rule_sql($count = false) {
         if ($count) {
             $select = "SELECT COUNT(s.id) ";
         } else {
@@ -200,4 +200,19 @@ class subscription_manager {
                         ON r.id = s.ruleid ";
         return $sql;
     }
+
+    /**
+     * Helper method to convert db records to instances.
+     *
+     * @param array $arr of subscriptions.
+     *
+     * @return array of subscriptions as instances.
+     */
+    protected static function get_instances($arr) {
+        $result = array();
+        foreach ($arr as $key => $sub) {
+            $result[$key] = new subscription($sub);
+        }
+        return $result;
+    }
 }