/**
  * Prepare info about attendance sessions taking into account view parameters.
  *
  * @param attendance $att instance
  */
 public function __construct(attendance $att)
 {
     $this->perm = $att->perm;
     $this->sessions = $att->get_filtered_sessions();
     $this->groups = groups_get_all_groups($att->course->id);
     $this->hiddensessionscount = $att->get_hidden_sessions_count();
     $this->att = $att;
 }
            $att->update_sessions_duration($sessionsids, $duration);
            redirect($att->url_manage(), get_string('sessionupdated', 'attendance'));
        }
        if ($slist === '') {
            print_error('nosessionsselected', 'attendance', $att->url_manage());
        }
        break;
    case att_sessions_page_params::ACTION_DELETE_HIDDEN:
        $confirm = optional_param('confirm', null, PARAM_INT);
        if ($confirm && confirm_sesskey()) {
            $sessions = $att->get_hidden_sessions();
            $att->delete_sessions(array_keys($sessions));
            redirect($att->url_manage(), get_string('hiddensessionsdeleted', 'attendance'));
        }
        $a = new stdClass();
        $a->count = $att->get_hidden_sessions_count();
        $a->date = userdate($course->startdate);
        $message = get_string('confirmdeletehiddensessions', 'attendance', $a);
        $params = array('action' => $att->pageparams->action, 'confirm' => 1, 'sesskey' => sesskey());
        echo $OUTPUT->header();
        echo $OUTPUT->heading(get_string('attendanceforthecourse', 'attendance') . ' :: ' . format_string($course->fullname));
        echo $OUTPUT->confirm($message, $att->url_sessions($params), $att->url_manage());
        echo $OUTPUT->footer();
        exit;
}
$output = $PAGE->get_renderer('mod_attendance');
$tabs = new attendance_tabs($att, attendance_tabs::TAB_ADD);
echo $output->header();
echo $output->heading(get_string('attendanceforthecourse', 'attendance') . ' :: ' . format_string($course->fullname));
echo $output->render($tabs);
$mform->display();