diff --git a/analytics/tests/fixtures/test_target_course_users.php b/analytics/tests/fixtures/test_target_course_users.php index 8907a3c5b7f..7be0a87f6d9 100644 --- a/analytics/tests/fixtures/test_target_course_users.php +++ b/analytics/tests/fixtures/test_target_course_users.php @@ -24,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/test_target_shortname.php'); +require_once(__DIR__ . '/test_target_site_users.php'); /** * Test target. diff --git a/course/classes/analytics/indicator/activities_due.php b/course/classes/analytics/indicator/activities_due.php index 425785173bc..b87da32734f 100644 --- a/course/classes/analytics/indicator/activities_due.php +++ b/course/classes/analytics/indicator/activities_due.php @@ -68,8 +68,10 @@ class activities_due extends \core_analytics\local\indicator\binary { */ protected function calculate_sample($sampleid, $sampleorigin, $starttime = false, $endtime = false) { + $user = $this->retrieve('user', $sampleid); + $actionevents = \core_calendar_external::get_calendar_action_events_by_timesort($starttime, $endtime, 0, 1, - true, $sampleid); + true, $user->id); if ($actionevents->events) { diff --git a/course/tests/indicators_test.php b/course/tests/indicators_test.php index 1749a13a576..3ad47f95e89 100644 --- a/course/tests/indicators_test.php +++ b/course/tests/indicators_test.php @@ -28,6 +28,7 @@ defined('MOODLE_INTERNAL') || die(); global $CFG; require_once(__DIR__ . '/../../lib/completionlib.php'); require_once(__DIR__ . '/../../completion/criteria/completion_criteria_self.php'); +require_once(__DIR__ . '/../../analytics/tests/fixtures/test_target_course_users.php'); /** * Unit tests for core_course indicators. @@ -313,4 +314,30 @@ class core_course_indicators_testcase extends advanced_testcase { // Page social is level 1 (the lower level). $this->assertEquals($indicator::get_min_value(), $values[$cm2->id][0]); } + + /** + * test_activities_due + * + * @return void + */ + public function test_activities_due() { + global $DB; + + $this->resetAfterTest(true); + $this->setAdminuser(); + + $course1 = $this->getDataGenerator()->create_course(); + $user1 = $this->getDataGenerator()->create_user(); + $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); + + $target = \core_analytics\manager::get_target('test_target_course_users'); + $indicators = array('\core_course\analytics\indicator\activities_due'); + foreach ($indicators as $key => $indicator) { + $indicators[$key] = \core_analytics\manager::get_indicator($indicator); + } + + $model = \core_analytics\model::create($target, $indicators); + $model->enable('\core\analytics\time_splitting\single_range'); + $model->train(); + } }