MDL-31306 question preview: disable 'Fill correct' for qtypes that can't
This commit is contained in:
@@ -987,11 +987,15 @@ class question_attempt {
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
@@ -582,6 +582,7 @@ class question_usage_by_activity {
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
@@ -211,7 +211,9 @@ $filldisabled = '';
|
||||
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) {
|
||||
|
||||
@@ -262,9 +262,10 @@ abstract class question_definition {
|
||||
/**
|
||||
* 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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user