Skip to content
Snippets Groups Projects
Select Git revision
  • 3c0568c749a636d59f50df4f8a0f96047edb6b09
  • master default
  • v0.52.5
  • v0.52.4
  • v0.52.3
  • v0.52.2
  • v0.52.1
  • v0.52.0
  • v0.51.0
  • v0.50.0
  • v0.49.0
11 results

osfamilymap.yaml

Blame
  • questiontestdelete.php 2.75 KiB
    <?php
    // This file is part of Stack - http://stack.maths.ed.ac.uk/
    //
    // Stack is free software: you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // Stack is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License
    // along with Stack.  If not, see <http://www.gnu.org/licenses/>.
    
    /**
     * This script lets the user delete a question test for a question, after confirmation.
     *
     * @copyright  2012 the Open University
     * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
     */
    
    require_once(__DIR__.'/../../../config.php');
    
    require_once($CFG->libdir . '/questionlib.php');
    require_once(__DIR__ . '/locallib.php');
    require_once(__DIR__ . '/questiontestform.php');
    require_once(__DIR__ . '/stack/questiontest.php');
    
    
    // Get the parameters from the URL.
    $questionid = required_param('questionid', PARAM_INT);
    $testcase = required_param('testcase', PARAM_INT);
    
    // Load the necessary data.
    $questiondata = $DB->get_record('question', array('id' => $questionid), '*', MUST_EXIST);
    $question = question_bank::load_question($questionid);
    $DB->get_record('qtype_stack_qtests', array('questionid' => $question->id, 'testcase' => $testcase),
            '*', MUST_EXIST); // Just to verify that the record exists.
    
    // Process any other URL parameters, and do require_login.
    list($context, $seed, $urlparams) = qtype_stack_setup_question_test_page($question);
    
    // Check permissions.
    question_require_capability_on($questiondata, 'edit');
    
    // Initialise $PAGE.
    $backurl = new moodle_url('/question/type/stack/questiontestrun.php', $urlparams);
    $urlparams['testcase'] = $testcase;
    $PAGE->set_url('/question/type/stack/questiontestdelete.php', $urlparams);
    $title = stack_string('deletetestcase',
            array('no' => $testcase, 'question' => format_string($question->name)));
    
    require_login();
    
    if (data_submitted() && confirm_sesskey()) {
        // User has confirmed. Actually delete the test case.
        question_bank::get_qtype('stack')->delete_question_test($questionid, $testcase);
        redirect($backurl);
    }
    
    // Display the confirmation.
    $PAGE->set_title($title);
    $PAGE->set_heading($title);
    $PAGE->set_pagelayout('popup');
    echo $OUTPUT->header();
    
    echo $OUTPUT->confirm(stack_string('deletetestcaseareyousure',
            array('no' => $testcase, 'question' => format_string($question->name))),
            new moodle_url($PAGE->url, array('sesskey' => sesskey())), $backurl);
    
    echo $OUTPUT->footer();