/** * Set properties from course and section. * @param \stdClass $course * @param \stdClass $section */ public function __construct($course, $section) { global $OUTPUT; static $compinfos = []; if (isset($compinfos[$course->id])) { $completioninfo = $compinfos[$course->id]; } else { $completioninfo = new \completion_info($course); $compinfos[$course->id] = $completioninfo; } if (!$completioninfo->is_enabled()) { return ''; // Completion tracking not enabled. } $sac = shared::section_activity_summary($section, $course, null); if (empty($sac->progress)) { return; } $this->progress = (object) ['complete' => $sac->progress->complete, 'total' => $sac->progress->total]; $this->pixcompleted = $OUTPUT->pix_url('i/completion-manual-y'); $this->completed = $sac->progress->complete === $sac->progress->total; }