MDL-45758 tool_monitor: Modifiy manager classes to return instances

Original issue - MDL-46132
This commit is contained in:
Ankit Agarwal 2014-10-01 13:50:25 +05:30
parent d18c425d51
commit 01d070e74b
5 changed files with 41 additions and 16 deletions

View 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);

View 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);

View 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);

View 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;
}
}

View 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;
}
}