Skip to content
Snippets Groups Projects
Commit f0c49b68 authored by Chris Sangwin's avatar Chris Sangwin Committed by Tim Hunt
Browse files

Changes to Tim's proposed behaviour to require an active confirm.

parent cf4a3a92
Branches
Tags
No related merge requests found
...@@ -570,7 +570,7 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -570,7 +570,7 @@ class qtype_stack_edit_form extends question_edit_form {
if ($counts[self::INPUTS] == 0 && $counts[self::VALIDATIONS] == 0) { if ($counts[self::INPUTS] == 0 && $counts[self::VALIDATIONS] == 0) {
$mform->addElement('static', $inputname . 'warning', '', stack_string('inputwillberemoved', $inputname)); $mform->addElement('static', $inputname . 'warning', '', stack_string('inputwillberemoved', $inputname));
$mform->addElement('advcheckbox', $inputname . 'deleteconfirm', '', stack_string('inputremovedconfirm')); $mform->addElement('advcheckbox', $inputname . 'deleteconfirm', '', stack_string('inputremovedconfirm'));
$mform->setDefault($inputname . 'deleteconfirm', 1); $mform->setDefault($inputname . 'deleteconfirm', 0);
$mform->setExpanded($inputname . 'header'); $mform->setExpanded($inputname . 'header');
} }
...@@ -657,7 +657,7 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -657,7 +657,7 @@ class qtype_stack_edit_form extends question_edit_form {
if ($count == 0) { if ($count == 0) {
$mform->addElement('static', $prtname . 'prtwarning', '', stack_string('prtwillberemoved', $prtname)); $mform->addElement('static', $prtname . 'prtwarning', '', stack_string('prtwillberemoved', $prtname));
$mform->addElement('advcheckbox', $prtname . 'prtdeleteconfirm', '', stack_string('prtremovedconfirm')); $mform->addElement('advcheckbox', $prtname . 'prtdeleteconfirm', '', stack_string('prtremovedconfirm'));
$mform->setDefault($prtname . 'prtdeleteconfirm', 1); $mform->setDefault($prtname . 'prtdeleteconfirm', 0);
$mform->setExpanded($prtname . 'header'); $mform->setExpanded($prtname . 'header');
} }
...@@ -1001,8 +1001,10 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -1001,8 +1001,10 @@ class qtype_stack_edit_form extends question_edit_form {
foreach ($inputs as $inputname => $counts) { foreach ($inputs as $inputname => $counts) {
list($numinputs, $numvalidations) = $counts; list($numinputs, $numvalidations) = $counts;
if ($numinputs == 0 && $numvalidations == 0 && $fromform[$inputname . 'deleteconfirm']) { if ($numinputs == 0 && $numvalidations == 0) {
if (!$fromform[$inputname . 'deleteconfirm']) {
$errors['questiontext'][] = stack_string('inputremovedconfirmbelow', $inputname); $errors['questiontext'][] = stack_string('inputremovedconfirmbelow', $inputname);
}
continue; continue;
} }
...@@ -1046,15 +1048,6 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -1046,15 +1048,6 @@ class qtype_stack_edit_form extends question_edit_form {
stack_string('specificfeedback'), $fromform['specificfeedback']['text'], stack_string('specificfeedback'), $fromform['specificfeedback']['text'],
array('input', 'validation')); array('input', 'validation'));
foreach ($prts as $prtname => $count) {
if ($count == 0 && $fromform[$prtname . 'prtdeleteconfirm']) {
$errors['specificfeedback'][] = stack_string('prtremovedconfirmbelow', $prtname);
} else if ($count > 1) {
$errors['specificfeedback'][] = stack_string(
'questiontextfeedbackonlycontain', '[[feedback:' . $prtname . ']]');
}
}
// General feedback. // General feedback.
$errors['generalfeedback'] = array(); $errors['generalfeedback'] = array();
$errors = $this->validate_cas_text($errors, $fromform['generalfeedback']['text'], 'generalfeedback', $fixingdollars); $errors = $this->validate_cas_text($errors, $fromform['generalfeedback']['text'], 'generalfeedback', $fixingdollars);
...@@ -1083,6 +1076,7 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -1083,6 +1076,7 @@ class qtype_stack_edit_form extends question_edit_form {
$errors[$inputname . 'deleteconfirm'][] = stack_string('youmustconfirm'); $errors[$inputname . 'deleteconfirm'][] = stack_string('youmustconfirm');
} }
if (array_key_exists($inputname . 'modelans', $fromform)) {
$errors = $this->validate_cas_string($errors, $errors = $this->validate_cas_string($errors,
$fromform[$inputname . 'modelans'], $inputname . 'modelans', $inputname . 'modelans'); $fromform[$inputname . 'modelans'], $inputname . 'modelans', $inputname . 'modelans');
...@@ -1095,12 +1089,19 @@ class qtype_stack_edit_form extends question_edit_form { ...@@ -1095,12 +1089,19 @@ class qtype_stack_edit_form extends question_edit_form {
$errors[$inputname . 'options'][] = stack_string('optionsnotrequired'); $errors[$inputname . 'options'][] = stack_string('optionsnotrequired');
} }
} }
}
// 3) Validate all prts. // 3) Validate all prts.
foreach ($prts as $prtname => $count) { foreach ($prts as $prtname => $count) {
if ($count == 0 && !$fromform[$prtname . 'prtdeleteconfirm']) { if ($count == 0) {
if (!$fromform[$prtname . 'prtdeleteconfirm']) {
$errors['specificfeedback'][] = stack_string('prtremovedconfirmbelow', $prtname);
$errors[$prtname . 'prtdeleteconfirm'][] = stack_string('youmustconfirm'); $errors[$prtname . 'prtdeleteconfirm'][] = stack_string('youmustconfirm');
} }
} else if ($count > 1) {
$errors['specificfeedback'][] = stack_string(
'questiontextfeedbackonlycontain', '[[feedback:' . $prtname . ']]');
}
$errors = $this->validate_prt($errors, $fromform, $prtname, $fixingdollars); $errors = $this->validate_prt($errors, $fromform, $prtname, $fixingdollars);
} }
... ...
......
...@@ -76,6 +76,7 @@ class qtype_stack_renderer extends qtype_renderer { ...@@ -76,6 +76,7 @@ class qtype_stack_renderer extends qtype_renderer {
$questiontext = str_replace("[[feedback:{$index}]]", $feedback, $questiontext); $questiontext = str_replace("[[feedback:{$index}]]", $feedback, $questiontext);
} }
// Now format the questiontext. This should be done after the subsitutions of inputs and PRTs. // Now format the questiontext. This should be done after the subsitutions of inputs and PRTs.
$questiontext = $question->format_text( $questiontext = $question->format_text(
stack_maths::process_display_castext($questiontext, $this), stack_maths::process_display_castext($questiontext, $this),
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment