Пример #1
0
 /**
  * Test count_rule_subscriptions method.
  */
 public function test_count_rule_subscriptions()
 {
     $this->setAdminUser();
     $this->resetAfterTest(true);
     // Create users.
     $user1 = $this->getDataGenerator()->create_user();
     $user2 = $this->getDataGenerator()->create_user();
     // Create few rules.
     $monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
     $rule1 = $monitorgenerator->create_rule();
     $rule2 = $monitorgenerator->create_rule();
     $subs = \tool_monitor\subscription_manager::count_rule_subscriptions($rule1->id);
     // No subscriptions at this point.
     $this->assertEquals(0, $subs);
     // Subscribe user 1 to rule 1.
     $record = new stdClass();
     $record->ruleid = $rule1->id;
     $record->userid = $user1->id;
     $monitorgenerator->create_subscription($record);
     // Subscribe user 2 to rule 1.
     $record->userid = $user2->id;
     $monitorgenerator->create_subscription($record);
     // Subscribe user 2 to rule 2.
     $record->ruleid = $rule2->id;
     $monitorgenerator->create_subscription($record);
     // Should have 2 subscriptions for rule 1 and 1 subscription for rule 2
     $subs1 = \tool_monitor\subscription_manager::count_rule_subscriptions($rule1->id);
     $subs2 = \tool_monitor\subscription_manager::count_rule_subscriptions($rule2->id);
     $this->assertEquals(2, $subs1);
     $this->assertEquals(1, $subs2);
 }
Пример #2
0
$eventlist = array_merge(array('' => get_string('choosedots')), $eventlist);
$pluginlist = array_merge(array('' => get_string('choosedots')), $pluginlist);
// Set up the yui module.
$PAGE->requires->yui_module('moodle-tool_monitor-dropdown', 'Y.M.tool_monitor.DropDown.init', array(array('eventlist' => $eventlist)));
// Site level report.
if (empty($courseid)) {
    admin_externalpage_setup('toolmonitorrules', '', null, '', array('pagelayout' => 'report'));
} else {
    // Course level report.
    $PAGE->navigation->override_active_url($manageurl);
}
// Mform setup.
if (!empty($ruleid)) {
    $rule = \tool_monitor\rule_manager::get_rule($ruleid)->get_mform_set_data();
    $rule->minutes = $rule->timewindow / MINSECS;
    $subscriptioncount = \tool_monitor\subscription_manager::count_rule_subscriptions($ruleid);
} else {
    $rule = new stdClass();
    $subscriptioncount = 0;
}
$mform = new tool_monitor\rule_form(null, array('eventlist' => $eventlist, 'pluginlist' => $pluginlist, 'rule' => $rule, 'courseid' => $courseid, 'subscriptioncount' => $subscriptioncount));
if ($mform->is_cancelled()) {
    redirect(new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => $courseid)));
    exit;
}
if ($mformdata = $mform->get_data()) {
    $rule = \tool_monitor\rule_manager::clean_ruledata_form($mformdata);
    if (empty($rule->id)) {
        \tool_monitor\rule_manager::add_rule($rule);
    } else {
        \tool_monitor\rule_manager::update_rule($rule);