protected function add_base_fields()
 {
     global $CFG, $USER;
     $mform = $this->_form;
     // exclusivity
     $exclgroup = array();
     $exclgroup[] = $mform->createElement('text', 'exclusivity', '', array('size' => '10'));
     $mform->setType('exclusivity', PARAM_INTEGER);
     $mform->setDefault('exclusivity', 1);
     $exclgroup[] = $mform->createElement('advcheckbox', 'exclusivityenable', '', get_string('enable'));
     $mform->setDefault('exclusivityenable', 1);
     $mform->disabledIf('exclusivity', 'exclusivityenable', 'eq', 0);
     $mform->addGroup($exclgroup, 'exclusivitygroup', get_string('maxstudentsperslot', 'scheduler'), ' ', false);
     $mform->addHelpButton('exclusivitygroup', 'exclusivity', 'scheduler');
     // location of the appointment
     $mform->addElement('text', 'appointmentlocation', get_string('location', 'scheduler'), array('size' => '30'));
     $mform->setType('appointmentlocation', PARAM_TEXT);
     $mform->addRule('appointmentlocation', get_string('error'), 'maxlength', 255);
     $mform->setDefault('appointmentlocation', $this->scheduler->get_last_location($USER));
     $mform->addHelpButton('appointmentlocation', 'location', 'scheduler');
     // Choose the teacher (if allowed)
     if (has_capability('mod/scheduler:canscheduletootherteachers', $this->context)) {
         $teachername = s($this->scheduler->get_teacher_name());
         $teachers = scheduler_get_attendants($this->cm->id);
         $teachersmenu = array();
         if ($teachers) {
             foreach ($teachers as $teacher) {
                 $teachersmenu[$teacher->id] = fullname($teacher);
             }
             $mform->addElement('select', 'teacherid', $teachername, $teachersmenu);
             $mform->addRule('teacherid', get_string('noteacherforslot', 'scheduler'), 'required');
             $mform->setDefault('teacherid', $USER->id);
         } else {
             $mform->addElement('static', 'teacherid', $teachername, get_string('noteachershere', 'scheduler', $teachername));
         }
         $mform->addHelpButton('teacherid', 'bookwithteacher', 'scheduler');
     } else {
         $mform->addElement('hidden', 'teacherid');
         $mform->setDefault('teacherid', $USER->id);
         $mform->setType('teacherid', PARAM_INT);
     }
 }
$returnurl = new moodle_url('/mod/scheduler/view.php', array('id' => $scheduler->cmid));
echo $output->header();
// Print top tabs.
echo $output->teacherview_tabs($scheduler, $taburl, 'datelist');
// Find active group in case that group mode is in use.
$currentgroupid = 0;
$groupmode = groups_get_activity_groupmode($scheduler->cm);
if ($groupmode) {
    $currentgroupid = groups_get_activity_group($scheduler->cm, true);
    echo html_writer::start_div('dropdownmenu');
    groups_print_activity_menu($scheduler->cm, $taburl);
    echo html_writer::end_div();
}
$scopemenukey = 'scopemenuself';
if (has_capability('mod/scheduler:canseeotherteachersbooking', $scopecontext)) {
    $teachers = scheduler_get_attendants($cm->id, $currentgroupid);
    $teachermenu = array();
    foreach ($teachers as $teacher) {
        $teachermenu[$teacher->id] = fullname($teacher);
    }
    $select = $output->single_select($taburl, 'teacherid', $teachermenu, $teacherid, array(0 => get_string('myself', 'scheduler')), 'teacheridform');
    echo html_writer::div(get_string('teachersmenu', 'scheduler', $select), 'dropdownmenu');
    $scopemenukey = 'scopemenu';
}
if (has_capability('mod/scheduler:seeoverviewoutsideactivity', $context)) {
    $scopemenu = array('activity' => get_string('thisscheduler', 'scheduler'), 'course' => get_string('thiscourse', 'scheduler'), 'site' => get_string('thissite', 'scheduler'));
    $select = $output->single_select($taburl, 'scope', $scopemenu, $scope, null, 'scopeform');
    echo html_writer::div(get_string($scopemenukey, 'scheduler', $select), 'dropdownmenu');
}
// Getting date list.
$params = array();