Exemplo n.º 1
0
 function action_default()
 {
     $id = $this->required_param('id', PARAM_INT);
     $sort = $this->optional_param('sort', 'idnumber', PARAM_ALPHANUM);
     $dir = $this->optional_param('dir', 'ASC', PARAM_ALPHA);
     $page = $this->optional_param('page', 0, PARAM_INT);
     $perpage = $this->optional_param('perpage', 30, PARAM_INT);
     $columns = array('idnumber' => get_string('student_idnumber', 'block_curr_admin'), 'name' => get_string('tag_name', 'block_curr_admin'), 'email' => get_string('email', 'block_curr_admin'), 'manage' => '');
     $items = usertrack::get_users($id);
     $count = $items ? count($items) : 0;
     $items = usertrack::get_users($id, $sort, $dir, $page, $perpage);
     $baseurl = new moodle_url($this->get_url(), array('id' => $id, 'sort' => $sort, 'dir' => $dir, 'page' => $page, 'perpage' => $perpage));
     print_paging_bar($count, $page, $perpage, $baseurl);
     $formatters = $this->create_link_formatters(array('idnumber', 'name'), 'usermanagementpage', 'userid');
     $this->print_list_view($items, $columns, $formatters, 'users');
     if ($this->can_do_add()) {
         $this->print_assign_link();
     }
 }
Exemplo n.º 2
0
 /**
  * Assign a class to a track, this function also creates
  * and assigns the class to the curriculum default track
  *
  * @return TODO: add meaningful return value
  */
 function add()
 {
     global $CURMAN;
     if (empty($this->courseid)) {
         $this->courseid = $CURMAN->db->get_field(CLSTABLE, 'courseid', 'id', $this->classid);
     }
     if ((empty($this->trackid) or empty($this->classid) or empty($this->courseid)) and empty($CURMAN->config->userdefinedtrack)) {
         cm_error('trackid and classid have not been properly initialized');
         return false;
     } elseif ((empty($this->courseid) or empty($this->classid)) and $CURMAN->config->userdefinedtrack) {
         cm_error('courseid has not been properly initialized');
     }
     if (empty($CURMAN->config->userdefinedtrack)) {
         if ($this->is_class_assigned_to_track()) {
             return false;
         }
         // Determine whether class is required
         $curcrsobj = new curriculumcourse(array('curriculumid' => $this->track->curid, 'courseid' => $this->classid));
         // insert assignment record
         $this->data_insert_record();
         if ($this->autoenrol && $this->is_autoenrollable()) {
             // autoenrol all users in the track
             $users = usertrack::get_users($this->trackid);
             if (!empty($users)) {
                 foreach ($users as $user) {
                     $stu_record = new object();
                     $stu_record->userid = $user->userid;
                     $stu_record->user_idnumber = $user->idnumber;
                     $stu_record->classid = $this->classid;
                     $stu_record->enrolmenttime = time();
                     $enrolment = new student($stu_record);
                     // check prerequisites and enrolment limits
                     $enrolment->add(array('prereq' => 1, 'waitlist' => 1));
                 }
             }
         }
     } else {
         // Look for all the curricula course is linked to -
         // then pull up the default system track for each curricula -
         // and add class to each default system track
         $currculums = curriculumcourse_get_list_by_course($this->courseid);
         $currculums = is_array($currculums) ? $currculums : array();
         foreach ($currculums as $recid => $record) {
             // Create default track for curriculum
             $trkojb = new track(array('curid' => $record->curriculumid));
             $trkid = $trkojb->create_default_track();
             // Create track assignment object
             $trkassign = new trackassignmentclass(array('trackid' => $trkid, 'classid' => $this->classid, 'courseid' => $this->courseid));
             // Check if class is already assigned to default track
             if (!$trkassign->is_class_assigned_to_default_track()) {
                 // Determine whether class is required
                 $curcrsobj = new curriculumcourse(array('curriculumid' => $trkassign->track->curid, 'courseid' => $trkassign->courseid));
                 // Get required field and determine if class is autoenrol eligible
                 $trkassign->autoenrol = (1 == $trkassign->cmclass->count_course_assignments($trkassign->cmclass->courseid) and true === $curcrsobj->is_course_required()) ? 1 : 0;
                 // assign class to the curriculum's default track
                 $trkassign->assign_class_to_default_track();
             }
         }
     }
     events_trigger('crlm_track_class_associated', $this);
     return true;
 }
Exemplo n.º 3
0
 /**
  * Assign a class to a track, this function also creates
  * and assigns the class to the curriculum default track
  *
  * @return TODO: add meaningful return value
  */
 function save()
 {
     //add()
     if (empty($this->courseid)) {
         $this->courseid = $this->_db->get_field(pmclass::TABLE, 'courseid', array('id' => $this->classid));
     }
     if ((empty($this->trackid) or empty($this->classid) or empty($this->courseid)) and empty(elis::$config->local_elisprogram->userdefinedtrack)) {
         cm_error('trackid and classid have not been properly initialized');
         return false;
     } else {
         if ((empty($this->courseid) or empty($this->classid)) and elis::$config->local_elisprogram->userdefinedtrack) {
             cm_error('courseid has not been properly initialized');
         }
     }
     if (!isset($this->id) && $this->is_class_assigned_to_track()) {
         //trying to re-add an existing association
         return;
     }
     // Determine whether class is required
     $curcrsobj = new curriculumcourse(array('curriculumid' => $this->track->curid, 'courseid' => $this->courseid));
     // TBV: was $this->classid
     // insert assignment record
     parent::save();
     //updated for ELIS2 from $this->data_insert_record()
     if ($this->autoenrol && $this->is_autoenrollable()) {
         // autoenrol all users in the track
         // ELIS-7582
         @set_time_limit(0);
         $users = usertrack::get_users($this->trackid);
         foreach ($users as $user) {
             // ELIS-3460: Must check pre-requisites ...
             if (!$curcrsobj->prerequisites_satisfied($user->userid)) {
                 //error_log("/local/elisprogram/lib/data/track.class.php:trackassignment::save(); pre-requisites NOT satisfied for course: {$this->courseid}, curriculum: {$this->track->curid}");
                 continue;
             }
             $now = time();
             $stu_record = new object();
             $stu_record->userid = $user->userid;
             $stu_record->user_idnumber = $user->idnumber;
             $stu_record->classid = $this->classid;
             $stu_record->enrolmenttime = $now;
             $enrolment = new student($stu_record);
             // check enrolment limits
             try {
                 $enrolment->save();
             } catch (pmclass_enrolment_limit_validation_exception $e) {
                 // autoenrol into waitlist
                 $wait_record = new object();
                 $wait_record->userid = $user->userid;
                 $wait_record->classid = $this->classid;
                 $wait_record->enrolmenttime = $now;
                 $wait_record->timecreated = $now;
                 $wait_record->position = 0;
                 $wait_list = new waitlist($wait_record);
                 $wait_list->save();
             } catch (Exception $e) {
                 $param = array('message' => $e->getMessage());
                 echo cm_error(get_string('record_not_created_reason', 'local_elisprogram', $param));
             }
         }
     }
     events_trigger('pm_track_class_associated', $this);
 }
 function __construct(&$items, $columns, $page, $decorators = array())
 {
     $id = required_param('id', PARAM_INT);
     $users = usertrack::get_users($id);
     $this->numusers = empty($users) ? 0 : count($users);
     parent::__construct($items, $columns, $page, $decorators);
 }