require_login($course, true, $cm);
$pageparams->sessionid = $id;
$att = new attendance($attendance, $cm, $course, $PAGE->context, $pageparams);
// Require that a session key is passed to this page.
require_sesskey();
// Create the form.
$mform = new mod_attendance_student_attendance_form(null, array('course' => $course, 'cm' => $cm, 'modcontext' => $PAGE->context, 'session' => $attforsession, 'attendance' => $att));
$PAGE->set_url($att->url_sessions());
if ($mform->is_cancelled()) {
    // The user cancelled the form, so redirect them to the view page.
    $url = new moodle_url('/mod/attendance/view.php', array('id' => $cm->id));
    redirect($url);
} else {
    if ($fromform = $mform->get_data()) {
        if (!empty($fromform->status)) {
            $success = $att->take_from_student($fromform);
            $url = new moodle_url('/mod/attendance/view.php', array('id' => $cm->id));
            if ($success) {
                // Redirect back to the view page for the block.
                redirect($url);
            } else {
                print_error('attendance_already_submitted', 'mod_attendance', $url);
            }
        }
        // The form did not validate correctly so we will set it to display the data they submitted.
        $mform->set_data($fromform);
    }
}
$PAGE->set_title($course->shortname . ": " . $att->name);
$PAGE->set_heading($course->fullname);
$PAGE->set_cacheable(true);