$item = new admin_setting_configcheckbox('enablehtmlpurifier', get_string('enablehtmlpurifier', 'admin'), get_string('configenablehtmlpurifier', 'admin'), 0);
$item->set_updatedcallback('reset_text_filters_cache');
$temp->add($item);
+ $temp->add(new admin_setting_configcheckbox('experimentalsplitrestore', get_string('experimentalsplitrestore', 'admin'), get_string('configexperimentalsplitrestore', 'admin'), 0));
$ADMIN->add('experimental', $temp);
-<h1>Decimal digits</h1>
+<h1>Decimal places</h1>
<p>By using this setting you can select the number of digits that should be
shown after the decimal point when displaying student scores or grades.
-For example choosing '0' means the displayed grades will be rounded to integers.
-</p><p>
-This setting only effects the display of grades. It does not affect the internal
-calculations and rounding of the grades.
-</p>
+For example choosing '0' means the displayed grades will be rounded to integers.</p>
+
+<p>This setting only effects the display of grades. It does not affect the grades
+stored in the database, nor the internal calculations, which are always carried
+out to full precision.</p>
-<p><img alt="" src="<?php echo $CFG->wwwroot?>/mod/quiz/icon.gif" /> <b>Quizzes</b></p>
-<div class="indent">
-This module allows the teacher to design and set quiz tests, consisting of
-multiple choice, true-false, and short answer questions. These
-questions are kept in a categorised database, and can be re-used
-within courses and even between courses. Quizzes can allow
-multiple attempts. Each attempt is automatically marked, and the
-teacher can choose whether to give feedback or to show correct answers.
-This module includes grading facilities.
-</div>
+<h2><img alt="" src="<?php echo $CFG->wwwroot?>/mod/quiz/icon.gif" /> Quizzes</h2>
+<p>This module allows the teacher to design and set quiz tests. The quiz can
+comprise questonis of a variety of type, including multiple choice, short answer
+and matching.</p>
+
+<p>Quizzes can allow one or more attempts, with many options for when students
+can attempts the quiz, and what they see when they do.</p>
+
+<p>Most questions are graded automatically, however, there is a facility for
+questions that have to be graded manually by the teacher. The teacher can also
+manually override the automatically awarded grade for any question.</p>
-<h1>Display in a "secure" window</h1>
+<h1>Use a 'secure' popup window for attempts</h1>
-<p>The "secure" window tries to provide a little more security for quizzes
- (making copying and cheating more difficult) by restricting some of the things
- that students can do with their browsers.</p>
+<p>The 'secure' window tries to make some simpler forms of copying and cheating
+more difficult during quiz attempts.</p>
<p>What happens is that:</p>
<ul>
<li>Some keyboard commands are prevented.</li>
</ul>
-<p>NOTE: <b>This security is NOT watertight</b>. Do NOT rely on these protections
+<p>NOTE: <b>This security is not watertight</b>. Do not rely on these protections
as your sole strategy. It is impossible to implement complete protection
of quizzes in a web environment so please do not rely on this option if
- you are really worried about students cheating. Other strategies you can
+ you are really worried about students cheating. Other strategies you can
try are to create really large databases of questions from which you
randomly choose questions, or even better, rethink your overall assessment
to put more value on constructive forms of activity such as forum discussions,
<h1>Time Delay between first and second attempt</h1>
-<p>If you set a time delay, then a student has to wait for that time before they can attempt a quiz after the first attempt.</p>
-
+<p>If you set a time delay, then the student has to wait for that amount of time
+to pass after the end of their first attempt before they can start their second attempt.</p>
+
<h1>Time Delay between additional quiz attempts</h1>
-<p>If you set a time delay here, then a student has to wait for that time before they can attempt their third or later attempts.</p>
+<p>If you set a time delay, then the student has to wait for that amount of time
+to pass after the end of their previous attempt before they can start their third or later attempt.</p>
<p align="center"><strong>Time limit</strong></p>
-<p>By default, quizzes do not have a time limit, which allows
- students as much time as they need to complete the quiz.</p>
+<p>By default, quizzes do not have a time limit, which allows students as much
+time as they need to complete the quiz, providing they finish before any close
+date.</p>
-<p>If you do specify a time limit, then several things are done to try and
- ensure that quizzes are completed within that time:</p>
-
-<ul>
- <li>Javascript support in the browser becomes mandatory - this allows
- the timer to work correctly</li>
- <li>A floating timer window is shown with a countdown</li>
- <li>When the timer has run out, the quiz is submitted automatically
- with whatever answers have been filled in so far</li>
- <li>If a student manages to cheat and spends more than 60 seconds
- over the allotted time then the quiz is automatically graded zero</li>
-</ul>
+<p>If you do specify a time limit, a countdown clock appears on-screen, and the
+quiz is automatically submitted when the time runs out. With a time limit, the
+student must submit their attempt before the time limit, or they will not
+receive a grade.</p>
<h1>Opening and closing the quiz</h1>
-<p>You can specify times when the quiz is accessible for people to make attempts.</p>
-
-<p>Before the opening time, and after the closing time, the quiz will be unavailable.</p>
+<p>You can specify a (possbily open-ended) range of times during which people
+may attempt the quiz. Outside these times, the quiz may not be attempted, but
+the person creating the quiz may preview it, to ensure it works as intended.</p>
$stateforqinattempt = false;
}
if ($stateforqinattempt && question_state_is_graded($stateforqinattempt)) {
- $grade = quiz_rescale_grade($stateforqinattempt->grade, $this->quiz);
+ $grade = quiz_rescale_grade($stateforqinattempt->grade, $this->quiz, 'question');
if (!$this->is_downloading()) {
if (isset($this->regradedqs[$attempt->attemptuniqueid][$questionid])){
$gradefromdb = $grade;
- $newgrade = quiz_rescale_grade($this->regradedqs[$attempt->attemptuniqueid][$questionid]->newgrade, $this->quiz);
- $oldgrade = quiz_rescale_grade($this->regradedqs[$attempt->attemptuniqueid][$questionid]->oldgrade, $this->quiz);
+ $newgrade = quiz_rescale_grade($this->regradedqs[$attempt->attemptuniqueid][$questionid]->newgrade, $this->quiz, 'question');
+ $oldgrade = quiz_rescale_grade($this->regradedqs[$attempt->attemptuniqueid][$questionid]->oldgrade, $this->quiz, 'question');
$grade = '<del>'.$oldgrade.'</del><br />'.
$newgrade;
function col_feedbacktext($attempt){
if ($attempt->timefinish) {
if (!$this->is_downloading()) {
- return quiz_report_feedback_for_grade(quiz_rescale_grade($attempt->sumgrades, $this->quiz), $this->quiz->id);
+ return quiz_report_feedback_for_grade(quiz_rescale_grade($attempt->sumgrades, $this->quiz, false), $this->quiz->id);
} else {
- return strip_tags(quiz_report_feedback_for_grade(quiz_rescale_grade($attempt->sumgrades, $this->quiz), $this->quiz->id));
+ return strip_tags(quiz_report_feedback_for_grade(quiz_rescale_grade($attempt->sumgrades, $this->quiz, false), $this->quiz->id));
}
} else {
return '-';
} else {
$header .=' ';
}
- $header .='--/'.quiz_rescale_grade($question->maxgrade, $quiz);
+ $header .='--/'.quiz_rescale_grade($question->maxgrade, $quiz, 'question');
$headers[] = $header;
}
}