Skip to content
Permalink
Browse files

MDL-15605 merge problem.

  • Loading branch information
tjhunt
tjhunt committed Aug 20, 2008
1 parent f285be0 commit 2abc0d001d73c930644d0514ca3ba51857dfd6db
Showing with 0 additions and 101 deletions.
  1. +0 −101 admin/health.php
@@ -619,107 +619,6 @@ function solution() {
}
}
class problem_000015 extends problem_base {
function title() {
return 'Question categories should belong to a valid context';
}
function exists() {
global $CFG;
return record_exists_sql("
SELECT qc.*, (SELECT COUNT(1) FROM {$CFG->prefix}question q WHERE q.category = qc.id) AS numquestions
FROM {$CFG->prefix}question_categories qc
LEFT JOIN {$CFG->prefix}context con ON qc.contextid = con.id
WHERE con.id IS NULL");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
global $CFG;
$problemcategories = get_records_sql("
SELECT qc.id, qc.name, qc.contextid, (SELECT COUNT(1) FROM {$CFG->prefix}question q WHERE q.category = qc.id) AS numquestions
FROM {$CFG->prefix}question_categories qc
LEFT JOIN {$CFG->prefix}context con ON qc.contextid = con.id
WHERE con.id IS NULL
ORDER BY numquestions DESC, qc.name");
$table = '<table><thead><tr><th>Cat id</th><th>Category name</th>' .
"<th>Context id</th><th>Num Questions</th></tr></thead><tbody>\n";
$maxnumquestions = 0;
if ($problemcategories) {
foreach ($problemcategories as $cat) {
$table .= "<tr><td>$cat->id/td><td>" . s($cat->name) . "</td><td>" .
$cat->contextid ."</td><td>$cat->numquestions</td></tr>\n";
if ($maxnumquestions < $cat->numquestions) {
$maxnumquestions = $cat->numquestions;
}
}
}
$table .= '</tbody></table>';
return '<p>All question categories are linked to a context id, and, ' .
'the context they are linked to must exist. The following categories ' .
'belong to a non-existant category:</p>' . $table . '<p>Any of these ' .
'categories that contain no questions can just be deleted form the database. ' .
'Other categories will require more thought.</p>';
}
function solution() {
global $CFG;
return '<p>You can delete the empty categories by executing the following SQL:</p><pre>
DELETE FROM ' . $CFG->prefix . 'question_categories
WHERE
NOT EXIST (SELECT * FROM ' . $CFG->prefix . 'question q WHERE q.category = qc.id)
AND NOT EXIST (SELECT * FROM ' . $CFG->prefix . 'context context WHERE qc.contextid = con.id)
</pre><p>Any remaining categories that contain questions will require more thought. ' .
'People in the <a href="http://moodle.org/mod/forum/view.php?f=121">Quiz forum</a> may be able to help.</p>';
}
}
class problem_000016 extends problem_base {
function title() {
return 'Question categories should belong to the same context as their parent';
}
function exists() {
global $CFG;
return record_exists_sql("
SELECT parent_qc.id AS parent, child_qc.id AS child, child_qc.contextid
FROM {$CFG->prefix}question_categories child_qc
JOIN {$CFG->prefix}question_categories parent_qc ON child_qc.parent = parent_qc.id
WHERE child_qc.contextid <> parent_qc.contextid");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
global $CFG;
$problemcategories = get_records_sql("
SELECT
parent_qc.id AS parentid, parent_qc.name AS parentname, parent_qc.contextid AS parentcon,
child_qc.id AS childid, child_qc.name AS childname, child_qc.contextid AS childcon
FROM {$CFG->prefix}question_categories child_qc
JOIN {$CFG->prefix}question_categories parent_qc ON child_qc.parent = parent_qc.id
WHERE child_qc.contextid <> parent_qc.contextid");
$table = '<table><thead><tr><th colspan="3">Child category</th><th colspan="3">Parent category</th></tr><tr>' .
'<th>Id</th><th>Name</th><th>Context id</th>' .
'<th>Id</th><th>Name</th><th>Context id</th>' .
"</tr></thead><tbody>\n";
if ($problemcategories) {
foreach ($problemcategories as $cat) {
$table .= "<tr><td>$cat->childid/td><td>" . s($cat->childname) .
"</td><td>$cat->childcon</td><td>$cat->parentid/td><td>" . s($cat->parentname) .
"</td><td>$cat->parentcon</td></tr>\n";
}
}
$table .= '</tbody></table>';
return '<p>When one question category is the parent of another, then they ' .
'should both belong to the same context. This is not true for the following categories:</p>' .
$table;
}
function solution() {
return '<p>An automated solution is difficult. It depends whether the ' .
'parent or child category is in the wrong pace.' .
'People in the <a href="http://moodle.org/mod/forum/view.php?f=121">Quiz forum</a> may be able to help.</p>';
}
}
class problem_00000x extends problem_base {
function title() {
return '';

0 comments on commit 2abc0d0

Please sign in to comment.
You can’t perform that action at this time.