Skip to content
Browse files

MDL-31306 question preview: disable 'Fill correct' for qtypes that can't

  • Loading branch information...
1 parent 58eb351 commit 6bc136feff568b07f51f79ae40c813d66a13f9d2 @mkassaei mkassaei committed with Sam Hemelryk Jan 20, 2012
View
8 question/engine/questionattempt.php
@@ -987,11 +987,15 @@ public function get_submitted_data($postdata = null) {
/**
* Get a set of response data for this question attempt that would get the
- * best possible mark.
- * @return array name => value pairs that could be passed to {@link process_action()}.
+ * best possible mark. If it is not possible to compute a correct
+ * response, this method should return null.
+ * @return array|null name => value pairs that could be passed to {@link process_action()}.
*/
public function get_correct_response() {
$response = $this->question->get_correct_response();
+ if (is_null($response)) {
+ return null;
+ }
$imvars = $this->behaviour->get_correct_response();
foreach ($imvars as $name => $value) {
$response['-' . $name] = $value;
View
1 question/engine/questionusage.php
@@ -582,6 +582,7 @@ public function update_question_flags($postdata = null) {
/**
* Get the correct response to a particular question. Passing the results of
* this method to {@link process_action()} will probably result in full marks.
+ * If it is not possible to compute a correct response, this method should return null.
* @param int $slot the number used to identify this question within this usage.
* @return array that constitutes a correct response to this question.
*/
View
4 question/preview.php
@@ -211,7 +211,9 @@
if ($quba->get_question_state($slot)->is_finished()) {
$finishdisabled = ' disabled="disabled"';
$filldisabled = ' disabled="disabled"';
-} else if (is_null($quba->get_correct_response($slot))) {
+}
+// If question type cannot give us a correct response, disable this button.
+if (is_null($quba->get_correct_response($slot))) {
$filldisabled = ' disabled="disabled"';
}
if (!$previewid) {
View
5 question/type/questionbase.php
@@ -262,9 +262,10 @@ public function get_renderer(moodle_page $page) {
/**
* What data would need to be submitted to get this question correct.
* If there is more than one correct answer, this method should just
- * return one possibility.
+ * return one possibility. If it is not possible to compute a correct
+ * response, this method should return null.
*
- * @return array parameter name => value.
+ * @return array|null parameter name => value.
*/
public abstract function get_correct_response();

0 comments on commit 6bc136f

Please sign in to comment.
Something went wrong with that request. Please try again.