Index: lib/questionlib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/questionlib.php,v retrieving revision 1.119.2.23 diff -u -r1.119.2.23 questionlib.php --- lib/questionlib.php 12 Dec 2008 09:00:03 -0000 1.119.2.23 +++ lib/questionlib.php 17 Mar 2009 05:31:02 -0000 @@ -1886,7 +1886,14 @@ * @return object The default category - the category in the course context */ function question_make_default_categories($contexts) { + static $preferredlevels = array( + CONTEXT_COURSE => 4, + CONTEXT_MODULE => 3, + CONTEXT_COURSECAT => 2, + CONTEXT_SYSTEM => 1, + ); $toreturn = null; + $preferredness = 0; // If it already exists, just return it. foreach ($contexts as $key => $context) { if (!$categoryrs = get_recordset_select("question_categories", "contextid = '{$context->id}'", 'sortorder, name', '*', '', 1)) { @@ -1907,12 +1914,15 @@ } } } - if ($context->contextlevel == CONTEXT_COURSE){ - $toreturn = clone($category); + if ($preferredlevels[$context->contextlevel] > $preferredness && has_capability('moodle/question:add', $context)) { + $toreturn = $category; + $preferredness = $preferredlevels[$context->contextlevel]; } } - + if (!is_null($toreturn)) { + $toreturn = clone($toreturn); + } return $toreturn; } @@ -2157,7 +2167,6 @@ } - /** * Check capability on category * @param mixed $question object or id