47 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace local_treestudyplan\task;
 | 
						|
require_once($CFG->dirroot.'/course/externallib.php');
 | 
						|
use local_treestudyplan\studyplan;
 | 
						|
use local_treestudyplan\cascadecohortsync;
 | 
						|
use local_treestudyplan\cascadeusersync;
 | 
						|
 | 
						|
class autocohortsync extends \core\task\scheduled_task  {
 | 
						|
 | 
						|
    /**
 | 
						|
     * Return the task's name as shown in admin screens.
 | 
						|
     *
 | 
						|
     * @return string
 | 
						|
     */
 | 
						|
    public function get_name() {
 | 
						|
        return get_string('autocohortsync_name', 'local_treestudyplan');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Execute the task.
 | 
						|
     */
 | 
						|
    public function execute() {
 | 
						|
        if(get_config("local_treestudyplan","csync_enable")){
 | 
						|
            \mtrace("Automatic csync cascading enabled");
 | 
						|
            $studyplans = studyplan::find_all();
 | 
						|
 | 
						|
            foreach($studyplans as $studyplan) {
 | 
						|
                // Only process studyplans that have been marked for change because 
 | 
						|
                // a cohort change has occurred or a course has been added....
 | 
						|
                if($studyplan->has_csync_changed()){
 | 
						|
                    \mtrace("Studyplan {$studyplan->shortname()} needs processing");
 | 
						|
                    $enroller = new cascadecohortsync($studyplan);
 | 
						|
                    $enroller->sync();
 | 
						|
                    if(get_config("local_treestudyplan","csync_users")){
 | 
						|
                        $userenroller = new cascadeusersync($studyplan);
 | 
						|
                        $userenroller->sync();
 | 
						|
                    }
 | 
						|
                    $studyplan->clear_csync_changed();
 | 
						|
 | 
						|
                } 
 | 
						|
            }
 | 
						|
            \mtrace("Task done");
 | 
						|
        } else {
 | 
						|
            \mtrace("Automatic csync cascading disabled");
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |