print_error('error:coursemisconfigured', 'facetoface');
}
if (!$cm = get_coursemodule_from_instance("facetoface", $facetoface->id, $course->id)) {
    print_error('error:incorrectcoursemoduleid', 'facetoface');
}

require_course_login($course);
$context = context_course::instance($course->id);
require_capability('mod/facetoface:view', $context);

$returnurl = "$CFG->wwwroot/course/view.php?id=$course->id";
if ($backtoallsessions) {
    $returnurl = "$CFG->wwwroot/mod/facetoface/view.php?f=$backtoallsessions";
}

$mform = new mod_facetoface_cancelsignup_form(null, compact('s', 'backtoallsessions'));
if ($mform->is_cancelled()) {
    redirect($returnurl);
}

if ($fromform = $mform->get_data()) { // Form submitted

    if (empty($fromform->submitbutton)) {
        print_error('error:unknownbuttonclicked', 'facetoface', $returnurl);
    }

    $forcecancel = false;
    $timenow = time();
    $bookedsession = facetoface_get_user_submissions($facetoface->id, $USER->id, MDL_F2F_STATUS_WAITLISTED, MDL_F2F_STATUS_WAITLISTED, $session->id);
    if (!empty($bookedsession) && facetoface_has_session_started($session, $timenow)) {
        $forcecancel = true;
    print_error('error:incorrectfacetofaceid', 'facetoface');
}
if (!($course = $DB->get_record('course', array('id' => $facetoface->course)))) {
    print_error('error:coursemisconfigured', 'facetoface');
}
if (!($cm = get_coursemodule_from_instance("facetoface", $facetoface->id, $course->id))) {
    print_error('error:incorrectcoursemoduleid', 'facetoface');
}
require_course_login($course);
$context = context_course::instance($course->id);
require_capability('mod/facetoface:view', $context);
$returnurl = "{$CFG->wwwroot}/course/view.php?id={$course->id}";
if ($backtoallsessions) {
    $returnurl = "{$CFG->wwwroot}/mod/facetoface/view.php?f={$backtoallsessions}";
}
$mform = new mod_facetoface_cancelsignup_form(null, compact('s', 'backtoallsessions'));
if ($mform->is_cancelled()) {
    redirect($returnurl);
}
if ($fromform = $mform->get_data()) {
    // Form submitted.
    if (empty($fromform->submitbutton)) {
        print_error('error:unknownbuttonclicked', 'facetoface', $returnurl);
    }
    $timemessage = 4;
    $errorstr = '';
    if (facetoface_user_cancel($session, false, false, $errorstr, $fromform->cancelreason)) {
        // Logging and events trigger.
        $params = array('context' => $contextmodule, 'objectid' => $session->id);
        $event = \mod_facetoface\event\cancel_booking::create($params);
        $event->add_record_snapshot('facetoface_sessions', $session);