From: moodler Date: Mon, 21 Oct 2002 15:00:51 +0000 (+0000) Subject: Can now delete questions. It checks that the question doesn't belong to X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e1c91df09b9dc71758fec06de2c4809faa9700ae;p=moodle.git Can now delete questions. It checks that the question doesn't belong to any quizzes first (if it's in a published category then it checks all quizzes on the server). --- diff --git a/lang/en/quiz.php b/lang/en/quiz.php index 5acb098e58..8b33d6567b 100644 --- a/lang/en/quiz.php +++ b/lang/en/quiz.php @@ -36,6 +36,7 @@ $string['createnewquestion'] = "Create new question"; $string['daysavailable'] = "Days available"; $string['default'] = "Default"; $string['defaultinfo'] = "The default category for questions."; +$string['deletequestioncheck'] = "Are you absolutely sure you want to delete '\$a'?"; $string['editcategories'] = "Edit categories"; $string['editingquiz'] = "Editing quiz"; $string['editingquestion'] = "Editing a question"; @@ -59,6 +60,7 @@ $string['nomoreattempts'] = "No more attempts are allowed"; $string['noquestions'] = "No questions have been added yet"; $string['publish'] = "Publish"; $string['question'] = "Question"; +$string['questioninuse'] = "The question '\$a' is currently being used:"; $string['questions'] = "Questions"; $string['questionname'] = "Question name"; $string['quizavailable'] = "The quiz is available until: \$a"; diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index a829ea32b4..4c9e048cab 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -19,8 +19,7 @@ define("MULTICHOICE", "3"); define("RANDOM", "4"); $QUIZ_QUESTION_TYPE = array ( MULTICHOICE => get_string("multichoice", "quiz"), TRUEFALSE => get_string("truefalse", "quiz"), - SHORTANSWER => get_string("shortanswer", "quiz"), - RANDOM => get_string("random", "quiz") ); + SHORTANSWER => get_string("shortanswer", "quiz") ); @@ -672,7 +671,7 @@ function quiz_print_cat_question_list($categoryid) { echo ""; if ($canedit) { echo ""; - echo "id\">id&delete=$question->id\"> "; echo "id\">"; diff --git a/mod/quiz/question.php b/mod/quiz/question.php index cf14679ae3..aa97b2ad71 100644 --- a/mod/quiz/question.php +++ b/mod/quiz/question.php @@ -43,7 +43,7 @@ require_login($course->id); if (!isteacher($course->id)) { - error("You can't modify this course!"); + error("You can't modify these questions!"); } $streditingquiz = get_string("editingquiz", "quiz"); @@ -51,7 +51,48 @@ print_header("$course->shortname: $streditingquestion", "$course->shortname: $streditingquestion", "wwwroot/course/view.php?id=$course->id\">$course->shortname - -> $streditingquiz -> $streditingquestion"); + -> $streditingquiz -> $streditingquestion"); + + if (isset($delete)) { + if (isset($confirm)) { + if ($confirm == md5($delete)) { + if (!delete_records("quiz_questions", "id", $question->id)) { + error("An error occurred trying to delete question (id $question->id)"); + } + redirect("edit.php"); + } else { + error("Confirmation string was incorrect"); + } + + } else { + if ($category->publish) { + $quizzes = get_records_sql("SELECT * FROM quiz"); + } else { + $quizzes = get_records("quiz", "course", $course->id); + } + $beingused = array(); + if ($quizzes) { + foreach ($quizzes as $quiz) { + $qqq = explode(",", $quiz->questions); + foreach ($qqq as $key => $value) { + if ($value == $delete) { + $beingused[] = $quiz->name; + } + } + } + } + if ($beingused) { + $beingused = implode(", ", $beingused); + $beingused = get_string("questioninuse", "quiz", "$question->name")."

".$beingused; + notice($beingused, "edit.php"); + } else { + notice_yesno(get_string("deletequestioncheck", "quiz", $question->name), + "question.php?id=$question->id&delete=$delete&confirm=".md5($delete), "edit.php"); + } + print_footer($course); + exit; + } + } if (match_referer() and isset($HTTP_POST_VARS)) { // question submitted diff --git a/mod/quiz/report.php b/mod/quiz/report.php index e7116106eb..0663559afb 100644 --- a/mod/quiz/report.php +++ b/mod/quiz/report.php @@ -8,6 +8,8 @@ optional_variable($id); // Course Module ID, or optional_variable($q); // quiz ID + optional_variable($attempt); // A particular attempt ID + if ($id) { if (! $cm = get_record("course_modules", "id", $id)) { error("Course Module ID was incorrect"); @@ -79,7 +81,7 @@ $table->data[] = array ($picture, "wwwroot/user/view.php?id=$grade->user&course=$course->id\">$grade->firstname $grade->lastname", - "$userattempts", $grade->grade); + "$userattempts", round($grade->grade,0)); } print_table($table);