From: tjhunt Date: Mon, 30 Jul 2007 10:05:11 +0000 (+0000) Subject: MDL-10656 - Way to control when Overall feedback is displayed, independantly of the... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=00719c02d66fca180334d22b4e0cf781a8ef4c27;p=moodle.git MDL-10656 - Way to control when Overall feedback is displayed, independantly of the other sorts of feedback. Also, improve the layout of those settings on the quiz editing form. --- diff --git a/mod/quiz/db/upgrade.php b/mod/quiz/db/upgrade.php index 0e41640e45..31a05191d5 100644 --- a/mod/quiz/db/upgrade.php +++ b/mod/quiz/db/upgrade.php @@ -66,6 +66,23 @@ function xmldb_quiz_upgrade($oldversion=0) { $db->debug = true; } + // Separate control for when overall feedback is displayed, independant of the question feedback settings. + if ($result && $oldversion < 2007072600) { + + // Adjust the quiz review options so that overall feedback is displayed whenever feedback is. + $result = $result && execute_sql('UPDATE ' . $CFG->prefix . 'quiz SET review = ' . + sql_bitor(sql_bitand('review', sql_bitnot(QUIZ_REVIEW_OVERALLFEEDBACK)), + sql_bitor(sql_bitand('review', QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY) . ' * 65536', + sql_bitor(sql_bitand('review', QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN) . ' * 16384', + sql_bitand('review', QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED) . ' * 4096')))); + + // Same adjustment to the defaults for new quizzes. + $result = $result && set_config('quiz_review', ($CFG->quiz_review & ~QUIZ_REVIEW_OVERALLFEEDBACK) | + (($CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY) << 16) | + (($CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN) << 14) | + (($CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED) << 12)); + } + return $result; } diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index de3529e73f..cc6f6e650c 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -18,36 +18,43 @@ require_once($CFG->libdir.'/questionlib.php'); /**#@+ * The different review options are stored in the bits of $quiz->review * These constants help to extract the options + * + * This is more of a mess than you might think necessary, because originally + * it was though that 3x6 bits were enough, but then they ran out. PHP integers + * are only reliably 32 bits signed, so the simplest solution was then to + * add 4x3 more bits. */ /** - * The first 6 bits refer to the time immediately after the attempt + * The first 6 + 4 bits refer to the time immediately after the attempt */ -define('QUIZ_REVIEW_IMMEDIATELY', 0x3f); +define('QUIZ_REVIEW_IMMEDIATELY', 0x3c003f); /** - * the next 6 bits refer to the time after the attempt but while the quiz is open + * the next 6 + 4 bits refer to the time after the attempt but while the quiz is open */ -define('QUIZ_REVIEW_OPEN', 0xfc0); +define('QUIZ_REVIEW_OPEN', 0x3c00fc0); /** - * the final 6 bits refer to the time after the quiz closes + * the final 6 + 4 bits refer to the time after the quiz closes */ -define('QUIZ_REVIEW_CLOSED', 0x3f000); +define('QUIZ_REVIEW_CLOSED', 0x3c03f000); // within each group of 6 bits we determine what should be shown -define('QUIZ_REVIEW_RESPONSES', 1*0x1041); // Show responses -define('QUIZ_REVIEW_SCORES', 2*0x1041); // Show scores -define('QUIZ_REVIEW_FEEDBACK', 4*0x1041); // Show feedback -define('QUIZ_REVIEW_ANSWERS', 8*0x1041); // Show correct answers +define('QUIZ_REVIEW_RESPONSES', 1*0x1041); // Show responses +define('QUIZ_REVIEW_SCORES', 2*0x1041); // Show scores +define('QUIZ_REVIEW_FEEDBACK', 4*0x1041); // Show question feedback +define('QUIZ_REVIEW_ANSWERS', 8*0x1041); // Show correct answers // Some handling of worked solutions is already in the code but not yet fully supported // and not switched on in the user interface. -define('QUIZ_REVIEW_SOLUTIONS', 16*0x1041); // Show solutions -define('QUIZ_REVIEW_GENERALFEEDBACK', 32*0x1041); // Show general feedback +define('QUIZ_REVIEW_SOLUTIONS', 16*0x1041); // Show solutions +define('QUIZ_REVIEW_GENERALFEEDBACK',32*0x1041); // Show question general feedback +define('QUIZ_REVIEW_OVERALLFEEDBACK', 1*0x4440000); // Show quiz overall feedback +// Multipliers 2*0x4440000, 4*0x4440000 and 8*0x4440000 are still available /**#@-*/ /** * If start and end date for the quiz are more than this many seconds apart * they will be represented by two separate events in the calendar */ -define("QUIZ_MAX_EVENT_LENGTH", "432000"); // 5 days maximum +define("QUIZ_MAX_EVENT_LENGTH", 5*24*60*60); // 5 days maximum /// FUNCTIONS /////////////////////////////////////////////////////////////////// @@ -712,15 +719,28 @@ function quiz_process_options(&$quiz) { if (isset($quiz->generalfeedbackimmediately)) { $review += (QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); - unset($quiz->solutionsimmediately); + unset($quiz->generalfeedbackimmediately); } if (isset($quiz->generalfeedbackopen)) { $review += (QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN); - unset($quiz->solutionsopen); + unset($quiz->generalfeedbackopen); } if (isset($quiz->generalfeedbackclosed)) { $review += (QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED); - unset($quiz->solutionsclosed); + unset($quiz->generalfeedbackclosed); + } + + if (isset($quiz->overallfeedbackimmediately)) { + $review += (QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); + unset($quiz->overallfeedbackimmediately); + } + if (isset($quiz->overallfeedbackopen)) { + $review += (QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_OPEN); + unset($quiz->overallfeedbackopen); + } + if (isset($quiz->overallfeedbackclosed)) { + $review += (QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_CLOSED); + unset($quiz->overallfeedbackclosed); } $quiz->review = $review; diff --git a/mod/quiz/locallib.php b/mod/quiz/locallib.php index aad494f287..48cb83786e 100644 --- a/mod/quiz/locallib.php +++ b/mod/quiz/locallib.php @@ -731,7 +731,7 @@ function quiz_get_reviewoptions($quiz, $attempt, $context=null) { $options->correct_responses = ($quiz->review & $quiz_state_mask & QUIZ_REVIEW_ANSWERS) ? 1 : 0; $options->solutions = ($quiz->review & $quiz_state_mask & QUIZ_REVIEW_SOLUTIONS) ? 1 : 0; $options->generalfeedback = ($quiz->review & $quiz_state_mask & QUIZ_REVIEW_GENERALFEEDBACK) ? 1 : 0; - $options->overallfeedback = $attempt->timefinish && ($quiz->review & $quiz_state_mask & QUIZ_REVIEW_FEEDBACK); + $options->overallfeedback = $attempt->timefinish && ($quiz->review & $quiz_state_mask & QUIZ_REVIEW_OVERALLFEEDBACK); } return $options; diff --git a/mod/quiz/mod_form.php b/mod/quiz/mod_form.php index 6b80a36aec..fac1761d20 100644 --- a/mod/quiz/mod_form.php +++ b/mod/quiz/mod_form.php @@ -145,43 +145,49 @@ class mod_quiz_mod_form extends moodleform_mod { $immediatelyoptionsgrp=array(); $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'responsesimmediately', '', get_string('responses', 'quiz')); - $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'scoreimmediately', '', get_string('scores', 'quiz')); - $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackimmediately', '', get_string('feedback', 'quiz')); $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'answersimmediately', '', get_string('answers', 'quiz')); + $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackimmediately', '', get_string('feedback', 'quiz')); $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackimmediately', '', get_string('generalfeedback', 'quiz')); + $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'scoreimmediately', '', get_string('scores', 'quiz')); + $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackimmediately', '', get_string('overallfeedback', 'quiz')); $mform->addGroup($immediatelyoptionsgrp, 'immediatelyoptionsgrp', get_string("reviewimmediately", "quiz"), null, false); $mform->setDefault('responsesimmediately', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_IMMEDIATELY); - $mform->setDefault('scoreimmediately', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY); - $mform->setDefault('feedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY); $mform->setDefault('answersimmediately', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_IMMEDIATELY); + $mform->setDefault('feedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY); $mform->setDefault('generalfeedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); + $mform->setDefault('scoreimmediately', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY); + $mform->setDefault('overallfeedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); $openoptionsgrp=array(); $openoptionsgrp[] = &$mform->createElement('checkbox', 'responsesopen', '', get_string('responses', 'quiz')); - $openoptionsgrp[] = &$mform->createElement('checkbox', 'scoreopen', '', get_string('scores', 'quiz')); - $openoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackopen', '', get_string('feedback', 'quiz')); $openoptionsgrp[] = &$mform->createElement('checkbox', 'answersopen', '', get_string('answers', 'quiz')); + $openoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackopen', '', get_string('feedback', 'quiz')); $openoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackopen', '', get_string('generalfeedback', 'quiz')); + $openoptionsgrp[] = &$mform->createElement('checkbox', 'scoreopen', '', get_string('scores', 'quiz')); + $openoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackopen', '', get_string('overallfeedback', 'quiz')); $mform->addGroup($openoptionsgrp, 'openoptionsgrp', get_string("reviewopen", "quiz"), array(' '), false); $mform->setDefault('responsesopen', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_OPEN); - $mform->setDefault('scoreopen', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN); - $mform->setDefault('feedbackopen', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN); $mform->setDefault('answersopen', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_OPEN); + $mform->setDefault('feedbackopen', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN); $mform->setDefault('generalfeedbackopen', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN); + $mform->setDefault('scoreopen', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN); + $mform->setDefault('overallfeedbackopen', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_OPEN); $closedoptionsgrp=array(); $closedoptionsgrp[] = &$mform->createElement('checkbox', 'responsesclosed', '', get_string('responses', 'quiz')); - $closedoptionsgrp[] = &$mform->createElement('checkbox', 'scoreclosed', '', get_string('scores', 'quiz')); - $closedoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackclosed', '', get_string('feedback', 'quiz')); $closedoptionsgrp[] = &$mform->createElement('checkbox', 'answersclosed', '', get_string('answers', 'quiz')); + $closedoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackclosed', '', get_string('feedback', 'quiz')); $closedoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackclosed', '', get_string('generalfeedback', 'quiz')); + $closedoptionsgrp[] = &$mform->createElement('checkbox', 'scoreclosed', '', get_string('scores', 'quiz')); + $closedoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackclosed', '', get_string('overallfeedback', 'quiz')); $mform->addGroup($closedoptionsgrp, 'closedoptionsgrp', get_string("reviewclosed", "quiz"), array(' '), false); $mform->setDefault('responsesclosed', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_CLOSED); - $mform->setDefault('scoreclosed', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED); - $mform->setDefault('feedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED); $mform->setDefault('answersclosed', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_CLOSED); + $mform->setDefault('feedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED); $mform->setDefault('generalfeedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED); + $mform->setDefault('scoreclosed', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED); + $mform->setDefault('overallfeedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_CLOSED); //------------------------------------------------------------------------------- $mform->addElement('header', 'security', get_string('security', 'form')); @@ -263,22 +269,25 @@ class mod_quiz_mod_form extends moodleform_mod { unset($default_values['review']); $default_values['responsesimmediately'] = $review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_IMMEDIATELY; - $default_values['scoreimmediately'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY; - $default_values['feedbackimmediately'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY; $default_values['answersimmediately'] = $review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_IMMEDIATELY; + $default_values['feedbackimmediately'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY; $default_values['generalfeedbackimmediately'] = $review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY; + $default_values['scoreimmediately'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY; + $default_values['overallfeedbackimmediately'] = $review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_IMMEDIATELY; $default_values['responsesopen'] = $review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_OPEN; - $default_values['scoreopen'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN; - $default_values['feedbackopen'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN; $default_values['answersopen'] = $review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_OPEN; + $default_values['feedbackopen'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN; $default_values['generalfeedbackopen'] = $review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN; + $default_values['scoreopen'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN; + $default_values['overallfeedbackopen'] = $review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_OPEN; $default_values['responsesclosed'] = $review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_CLOSED; - $default_values['scoreclosed'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED; - $default_values['feedbackclosed'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED; $default_values['answersclosed'] = $review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_CLOSED; + $default_values['feedbackclosed'] = $review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED; $default_values['generalfeedbackclosed'] = $review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED; + $default_values['scoreclosed'] = $review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED; + $default_values['overallfeedbackclosed'] = $review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_CLOSED; } if (isset($default_values['optionflags'])){ diff --git a/mod/quiz/reviewoptions.html b/mod/quiz/reviewoptions.html index fcbc483f34..48ce800195 100644 --- a/mod/quiz/reviewoptions.html +++ b/mod/quiz/reviewoptions.html @@ -12,11 +12,11 @@ - - - + + + @@ -26,21 +26,19 @@ review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> - @@ -48,21 +46,19 @@ review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> - @@ -70,21 +66,19 @@ review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> -
- review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_IMMEDIATELY) ? 'checked="checked"' : '' ?> />
- review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_OPEN) ? 'checked="checked"' : '' ?> />
- review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> - review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> /> + review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_CLOSED) ? 'checked="checked"' : '' ?> />
diff --git a/mod/quiz/version.php b/mod/quiz/version.php index 1f0f75ad83..cadc212e66 100644 --- a/mod/quiz/version.php +++ b/mod/quiz/version.php @@ -5,7 +5,7 @@ // This fragment is called by moodle_needs_upgrading() and /admin/index.php //////////////////////////////////////////////////////////////////////////////// -$module->version = 2007072200; // The (date) version of this module +$module->version = 2007072600; // The (date) version of this module $module->requires = 2007072200; // Requires this Moodle version $module->cron = 0; // How often should cron check this module (seconds)? diff --git a/theme/standard/styles_layout.css b/theme/standard/styles_layout.css index 73c06afd84..76fd9baf30 100644 --- a/theme/standard/styles_layout.css +++ b/theme/standard/styles_layout.css @@ -3460,6 +3460,29 @@ table.quizreviewsummary td.cell { padding: 1px 1em 1px 0.5em; } +#mod-quiz-mod #reviewoptionshdr .fitem { + float: left; + width: 30%; + margin-left: 10px; + clear: none; +} +#mod-quiz-mod #reviewoptionshdr .fitemtitle { + width: 100%; + font-weight: bold; + text-align: left; + height: 2.5em; + margin-left: 0; +} +#mod-quiz-mod #reviewoptionshdr fieldset.fgroup { + width: 100%; + text-align: left; + margin-left: 0; +} +#mod-quiz-mod #reviewoptionshdr fieldset.fgroup span { + float: left; + clear: left; +} + #mod-quiz-edit #page .controls, #mod-quiz-edit #page .attemptsnotice {