MDL-20636 It is now possible to start a quiz attempt.

This includes merging the CSS.
This commit is contained in:
Tim Hunt
2011-02-08 14:19:23 +00:00
parent 7c5bd5bfab
commit a1eb3a4466
8 changed files with 659 additions and 622 deletions
+1 -2
View File
@@ -86,7 +86,7 @@ add_to_log($attemptobj->get_courseid(), 'quiz', 'continue attempt',
$attemptobj->get_quizid(), $attemptobj->get_cmid());
// Get the list of questions needed by this page.
$slots = $attemptobj->get_question_numbers($page);
$slots = $attemptobj->get_slots($page);
// Check.
if (empty($slots)) {
@@ -139,7 +139,6 @@ if ($attemptobj->is_preview_user()) {
echo '<form id="responseform" method="post" action="', s($attemptobj->processattempt_url()),
'" enctype="multipart/form-data" accept-charset="utf-8">', "\n";
echo '<div>';
print_js_call('quiz_init_form');
// Print all the questions
foreach ($slots as $slot) {
+503 -481
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -396,6 +396,7 @@ $string['incorrect'] = 'Incorrect';
$string['indivresp'] = 'Responses of individuals to each item';
$string['info'] = 'Info';
$string['infoshort'] = 'i';
$string['inprogress'] = 'In progress';
$string['introduction'] = 'Introduction';
$string['invalidattemptid'] = 'No such attempt ID exists';
$string['invalidcategory'] = 'Category ID is invalid';
@@ -575,8 +576,8 @@ $string['questionmissing'] = 'Question for this session is missing';
$string['questionname'] = 'Question name';
$string['questionnametoolong'] = 'Question name too long at line {$a} (255 char. max). It has been truncated.';
$string['questionno'] = 'Question {$a}';
$string['questionnonav'] = '<span class=\"accesshide\">Question </span>{$a->number}<span class=\"accesshide\"> {$a->attributes}</span>';
$string['questionnonavinfo'] = '<span class=\"accesshide\">Information </span>{$a->number}<span class=\"accesshide\"> {$a->attributes}</span>';
$string['questionnonav'] = '<span class="accesshide">Question </span>{$a->number}<span class="accesshide"> {$a->attributes}</span>';
$string['questionnonavinfo'] = '<span class="accesshide">Information </span>{$a->number}<span class="accesshide"> {$a->attributes}</span>';
$string['questionnotloaded'] = 'Question {$a} has not been loaded from the database';
$string['questionorder'] = 'Question order';
$string['questions'] = 'Questions';
Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

+4 -5
View File
@@ -57,7 +57,7 @@ if (!confirm_sesskey()) {
$PAGE->set_pagelayout('base');
// if no questions have been set up yet redirect to edit.php
if (!$quizobj->get_question_ids() && $quizobj->has_capability('mod/quiz:manage')) {
if (!$quizobj->has_questions() && $quizobj->has_capability('mod/quiz:manage')) {
redirect($quizobj->edit_url());
}
@@ -67,7 +67,6 @@ if ($quizobj->is_preview_user() && $forcenew) {
$accessmanager->clear_password_access();
}
// Check capabilities.
if (!$quizobj->is_preview_user()) {
$quizobj->require_capability('mod/quiz:attempt');
@@ -186,10 +185,10 @@ if (!($quiz->attemptonlast && $lastattempt)) {
}
// Save the attempt in the database.
begin_sql();
$transaction = $DB->start_delegated_transaction();
question_engine::save_questions_usage_by_activity($quba);
$attempt->uniqueid = $quba->get_id();
if (!$attempt->id = insert_record('quiz_attempts', $attempt)) {
if (!$attempt->id = $DB->insert_record('quiz_attempts', $attempt)) {
throw new moodle_quiz_exception($quizobj, 'newattemptfail');
}
@@ -212,7 +211,7 @@ $eventdata->user = $USER;
$eventdata->attempt = $attempt->id;
events_trigger('quiz_attempt_started', $eventdata);
commit_sql();
$transaction->allow_commit();
// Redirect to the attempt page.
redirect($quizobj->attempt_url($attempt->id));
+130 -114
View File
@@ -1,19 +1,72 @@
.path-mod-quiz .graph.flexible-wrap {text-align:center;overflow:auto;}
#page-mod-quiz-comment #manualgradingform,
#page-mod-quiz-report #manualgradingform {width: 100%;}
/** Mixed **/
#page-mod-quiz-attempt .submitbtns,
#page-mod-quiz-review .submitbtns,
#page-mod-quiz-summary .submitbtns {text-align: left;margin-top: 1.5em;}
/** Attempt and review pages **/
#page-mod-quiz-attempt #page .controls,
#page-mod-quiz-summary #page .controls,
#page-mod-quiz-review #page .controls {text-align: center;margin: 8px auto;}
#page-mod-quiz-attempt .submitbtns,
#page-mod-quiz-review .submitbtns {clear: left; text-align: left; padding-top: 1.5em;}
body.jsenabled .questionflagcheckbox {display: none;}
/* Question navigation block. */
#quiznojswarning {color: red;}
#quiznojswarning {font-size: 0.7em;line-height: 1.1;}
.jsenabled #quiznojswarning {display: none;}
.path-mod-quiz #user-picture {margin: 0.5em 0;}
.path-mod-quiz #user-picture img {width: auto;height: auto;float: left;}
.path-mod-quiz .qnbutton {display: block; position: relative; float: left; width: 1.5em; height: 1.5em; overflow: hidden; margin: 0.3em 0.3em 0.3em 0; padding: 0; border: 1px solid #bbb; background: #ddd; text-align: center; vertical-align: middle;line-height: 1.5em !important; font-weight: bold; text-decoration: none;}
.path-mod-quiz .qnbutton:hover {text-decoration: underline;}
.path-mod-quiz .qnbutton span {cursor: pointer; cursor: hand;}
.path-mod-quiz .qnbutton .trafficlight,
.path-mod-quiz .qnbutton .thispageholder {display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0;}
.path-mod-quiz .qnbutton.thispage {border-color: #666;}
.path-mod-quiz .qnbutton.thispage .thispageholder {border: 1px solid #666;}
.path-mod-quiz .qnbutton.flagged .trafficlight {background: url([[pix:quiz|navflagged]]) no-repeat top right;}
.path-mod-quiz .qnbutton.notyetanswered,
.path-mod-quiz .qnbutton.requiresgrading,
.path-mod-quiz .qnbutton.invalidanswer {background-color: white;}
.path-mod-quiz .qnbutton.correct {background-color: #cfc;}
.path-mod-quiz .qnbutton.correct .trafficlight {border-bottom: 3px solid #080;}
.path-mod-quiz .qnbutton.partiallycorrect {background-color: #ffa;}
.path-mod-quiz .qnbutton.notanswered,
.path-mod-quiz .qnbutton.incorrect {background-color: #fcc;}
.path-mod-quiz .qnbutton.notanswered .trafficlight,
.path-mod-quiz .qnbutton.incorrect .trafficlight {border-top: 3px solid #800;}
.path-mod-quiz .othernav {clear: both; margin: 0.5em 0;}
.path-mod-quiz .othernav a,
.path-mod-quiz .othernav input {display: block;margin: 0.5em 0;}
/* Countdown timer. */
#quiz-timer {display: none; margin-top: 1em;}
#quiz-time-left {font-weight: bold;}
#quiz-timer.timeleft15 {background: #ffffff;}
#quiz-timer.timeleft14 {background: #ffeeee;}
#quiz-timer.timeleft13 {background: #ffdddd;}
#quiz-timer.timeleft12 {background: #ffcccc;}
#quiz-timer.timeleft11 {background: #ffbbbb;}
#quiz-timer.timeleft10 {background: #ffaaaa;}
#quiz-timer.timeleft9 {background: #ff9999;}
#quiz-timer.timeleft8 {background: #ff8888;}
#quiz-timer.timeleft7 {background: #ff7777;}
#quiz-timer.timeleft6 {background: #ff6666;}
#quiz-timer.timeleft5 {background: #ff5555;}
#quiz-timer.timeleft4 {background: #ff4444;}
#quiz-timer.timeleft3 {background: #ff3333;}
#quiz-timer.timeleft2 {background: #ff2222;}
#quiz-timer.timeleft1 {background: #ff1111;}
#quiz-timer.timeleft0 {background: #ff0000;}
/** mod quiz mod **/
#page-mod-quiz-mod #reviewoptionshdr .fitem {width: 23%;margin-left: 10px;}
#page-mod-quiz-mod #reviewoptionshdr fieldset.fgroup {width: 100%;text-align: left;margin-left: 0;}
#page-mod-quiz-edit div.question div.content .questiontext,
#categoryquestions .questiontext {-o-text-overflow:ellipsis;text-overflow:ellipsis;position:relative;zoom:1;padding-left:0.3em;max-width:40%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
@@ -41,13 +94,6 @@ div.editq div.question div.content .singlequestion a .questiontext{text-decorati
#page-mod-quiz-mod #reviewoptionshdr fieldset.fgroup span label,
#adminquizreviewoptions span label {margin-left: 0.4em;}
table#categoryquestions td,
#page-mod-quiz-edit table#categoryquestions th{overflow:hidden;white-space:nowrap;}
/** mod quiz mod **/
#page-mod-quiz-mod #reviewoptionshdr .fitem {width: 30%;margin-left: 10px;}
#page-mod-quiz-mod #reviewoptionshdr fieldset.fgroup {width: 100%;text-align: left;margin-left: 0;}
/** Mod quiz view **/
#page-mod-quiz-view .quizinfo,
#page-mod-quiz-view #page .quizgradefeedback,
@@ -60,37 +106,28 @@ table#categoryquestions td,
.quizstartbuttondiv.quizsecuremoderequired input { display: none; }
.jsenabled .quizstartbuttondiv.quizsecuremoderequired input { display: inline; }
.mod-quiz .gradedattempt,
.mod-quiz tr.gradedattempt td { background-color: #e8e8e8; }
/** Mod quiz summary **/
#page-mod-quiz-summary #content {text-align: center;}
#page-mod-quiz-summary .questionflag {width: 16px;height: 16px;vertical-align: middle;}
#page-mod-quiz-summary #quiz-timer {text-align: center;}
#page-mod-quiz-summary #quiz-timer {text-align: center; margin-top: 1em;}
#page-mod-quiz-summary .submitbtns {margin-top: 1.5em;}
@media print {
.quiz-secure-window * { display: none !important; }
}
/** Countdown timer. */
#quiz-timer {display: none; margin-top: 1em;}
#quiz-time-left {font-weight: bold;}
#quiz-timer.timeleft15 {background: #ffffff;}
#quiz-timer.timeleft14 {background: #ffeeee;}
#quiz-timer.timeleft13 {background: #ffdddd;}
#quiz-timer.timeleft12 {background: #ffcccc;}
#quiz-timer.timeleft11 {background: #ffbbbb;}
#quiz-timer.timeleft10 {background: #ffaaaa;}
#quiz-timer.timeleft9 {background: #ff9999;}
#quiz-timer.timeleft8 {background: #ff8888;}
#quiz-timer.timeleft7 {background: #ff7777;}
#quiz-timer.timeleft6 {background: #ff6666;}
#quiz-timer.timeleft5 {background: #ff5555;}
#quiz-timer.timeleft4 {background: #ff4444;}
#quiz-timer.timeleft3 {background: #ff3333;}
#quiz-timer.timeleft2 {background: #ff2222;}
#quiz-timer.timeleft1 {background: #ff1111;}
#quiz-timer.timeleft0 {background: #ff0000;}
/** Mod quiz review **/
#page-mod-quiz-review .pagingbar {margin: 1.5em auto;}
table.quizreviewsummary {width: 100%;}
table.quizreviewsummary th.cell {padding: 1px 0.5em 1px 1em;font-weight: bold;text-align: right;width: 10em;background: #f0f0f0;}
table.quizreviewsummary td.cell {padding: 1px 1em 1px 0.5em;text-align: left;background: #fafafa;}
/** Mod quiz make comment or override grade popup. **/
#page-mod-quiz-comment .mform {width: 100%;}
#page-mod-quiz-comment .mform fieldset {margin: 0;}
#page-mod-quiz-comment .que {margin: 0;}
/** Mod quiz report **/
#page-mod-quiz-report h2.main {clear: both;}
@@ -99,9 +136,17 @@ table#categoryquestions td,
#page-mod-quiz-report .dubious{background-color: #fcc;}
#page-mod-quiz-report .highlight{border :medium solid yellow;background-color:lightYellow;}
#page-mod-quiz-report .negcovar{border :medium solid pink;}
#page-mod-quiz-report .toggleincludeauto {text-align: center;}
#page-mod-quiz-report .gradetheselink {font-size: 0.8em;}
#page-mod-quiz-report #manualgradingform {width: 100%;}
#page-mod-quiz-report #manualgradingform.mform br {clear: none;}
#page-mod-quiz-report #manualgradingform.mform .clearfix:after {clear: none;}
#page-mod-quiz-report #manualgradingform .que {margin-bottom: 0.7em;}
#page-mod-quiz-report table.titlesleft td.c0{font-weight: bold;}
#page-mod-quiz-report .mform fieldset {margin: 0;}
#page-mod-quiz-report fieldset.felement.fgroup {margin: 0;}
#page-mod-quiz-report table.titlesleft td.c0 {font-weight: bold;}
#page-mod-quiz-report table .numcol {text-align: center;vertical-align : middle !important;}
#page-mod-quiz-report table#attempts {clear: both;width: 80%; margin: 0.2em auto;}
#page-mod-quiz-report table#attempts .header,
#page-mod-quiz-report table#attempts .cell{padding: 4px;}
@@ -110,16 +155,13 @@ table#categoryquestions td,
#page-mod-quiz-report table#attempts td {border-left-width: 1px;border-right-width: 1px;border-left-style: solid;border-right-style: solid;vertical-align: middle;}
#page-mod-quiz-report table#attempts .header {text-align: left;}
#page-mod-quiz-report table#attempts .picture {text-align: center !important;}
#page-mod-quiz-report table#itemanalysis {width: 80%;margin: 20px auto;}
#page-mod-quiz-report table#itemanalysis td {border-width: 1px;border-style: solid;}
#page-mod-quiz-report table#itemanalysis .header {text-align: left;padding: 4px;}
#page-mod-quiz-report table#itemanalysis .header .commands {display: inline;}
#page-mod-quiz-report table#itemanalysis .uncorrect {color: red;}
#page-mod-quiz-report table#itemanalysis .correct {color: blue;font-weight : bold;}
#page-mod-quiz-report table#itemanalysis .partialcorrect {color: green !important;}
#page-mod-quiz-report table#itemanalysis .cell{padding: 4px;}
#page-mod-quiz-report table#itemanalysis .qname {color: green !important;}
#page-mod-quiz-report fieldset.felement.fgroup {margin: 0;}
#page-mod-quiz-report table#attempts.grades span.que,
#page-mod-quiz-report table#attempts span.avgcell {white-space: nowrap;}
#page-mod-quiz-report table#attempts span.que .requiresgrading {white-space: normal;}
#page-mod-quiz-report table#attempts .questionflag {width: 16px; height: 16px; vertical-align: middle;}
#page-mod-quiz-report .graph.flexible-wrap {text-align:center; overflow:auto;}
#page-mod-quiz-report #cachingnotice {margin-bottom: 1em; padding: 0.2em; }
#page-mod-quiz-report #cachingnotice .singlebutton {margin: 0.5em 0 0;}
#page-mod-quiz-report .bold .reviewlink {font-weight: normal;}
@@ -133,6 +175,16 @@ table#categoryquestions td,
#page-mod-quiz-grading table#grading td {border-left-width: 1px;border-right-width: 1px;border-left-style: solid;border-right-style: solid;vertical-align: bottom;}
/** Mod quiz attempt **/
table.quizattemptsummary .bestrow td {background-color: #e8e8e8;}
table.quizattemptsummary .noreviewmessage {color: gray;}
.quizattemptcounts {clear: left; text-align: center;}
.generalbox#passwordbox { /* Should probably match .generalbox#intro above */width:70%;margin-left:auto;margin-right:auto;}
#passwordform {margin: 1em 0;}
/** Mod quiz edit **/
#page-mod-quiz-edit h2.main{display:inline;padding-right:1em;clear:left;}
#categoryquestions .r1 {background: #e4e4e4;}
#categoryquestions .header {text-align: center;padding: 0 2px;border: 0 none;}
#categoryquestions th.modifiername .sorters,
@@ -144,69 +196,6 @@ table#categoryquestions {width: 100%;overflow: hidden;table-layout: fixed;}
#categoryquestions .qtype {width: 24px;padding: 0;}
#categoryquestions .questiontext p {margin: 0;}
table.quizattemptsummary .bestrow td {background-color: #e8e8e8;}
table.quizattemptsummary .noreviewmessage {color: gray;}
table.quizreviewsummary {width: 100%;}
table.quizreviewsummary th.cell {padding: 1px 0.5em 1px 1em;font-weight: bold;text-align: right;width: 10em;background: #f0f0f0;}
table.quizreviewsummary td.cell {padding: 1px 1em 1px 0.5em;text-align: left;background: #fafafa;}
.path-mod-quiz #user-picture {margin: 0.5em 0;}
.path-mod-quiz #user-picture img {width: auto;height: auto;float: left;}
.path-mod-quiz .othernav {clear: both;}
.path-mod-quiz .othernav a,
.path-mod-quiz .othernav input {display: block;margin: 0.5em 0;}
.path-mod-quiz .qnbutton {display: block;float: left;width: 1.5em;height: 1.5em;overflow: hidden;margin: 0.3em 0.3em 0.3em 0;padding: 0;border: 1px solid #bbb;background: #eee no-repeat top right;text-align: center;vertical-align: middle;cursor: pointer;white-space: normal;font: inherit;line-height: 1.5em;font-weight: bold;color: #00f;border-color: #bbb;background-color: #ddd;}
.path-mod-quiz .qnbutton:hover {text-decoration: underline;color: #f00;}
.path-mod-quiz .qnbutton.flagged {background-image: url([[pix:i/ne_red_mark]]);}
.path-mod-quiz .qnbutton.thispage {border-color: black;}
.path-mod-quiz .qnbutton.open {background-color: white;}
.path-mod-quiz .qnbutton.correct {background-color: #cfc;}
.path-mod-quiz .qnbutton.partiallycorrect {background-color: #ffa;}
.path-mod-quiz .qnbutton.incorrect {background-color: #fcc;}
#quiznojswarning {color: red;}
#quiznojswarning {font-size: 0.7em;line-height: 1.1;}
.jsenabled #quiznojswarning {display: none;}
body#question-preview .quemodname,
body#question-preview .controls{text-align: center;}
.quizattemptcounts {clear: left; text-align: center;}
.generalbox#passwordbox { /* Should probably match .generalbox#intro above */width:70%;margin-left:auto;margin-right:auto;}
#passwordform {margin: 1em 0;}
.questionbankwindow.block {float:right;width:30%;right:0.3em;padding-bottom:0.5em;display:block;border-width:0;}
.questionbankwindow.block .content {padding:0;}
.questionbankwindow .choosecategory,
.questionbankwindow .createnewquestion {padding: 0.3em;}
.questionbankwindow .createnewquestion .singlebutton {display: inline;}
.questionbankwindow #catmenu_jump {display: block;}
.questionbank div.categoryquestionscontainer,
.questionbank .categorysortopotionscontainer,
.questionbank .categorypagingbarcontainer,
.questionbank .categoryselectallcontainer{padding-left:0.3em;padding-right:0.3em;}
.noquestionsincategory{clear:both;padding-top:1em;padding-bottom:1em;}
.modulespecificbuttonscontainer{padding-left:0.3em;padding-right:0.3em;}
#adminquizreviewoptions {margin-bottom: 0.5em;}
.quizquestionlistcontrols {text-align: center;}
.categoryinfo {padding: 0.3em;}
.path-mod-quiz .gradingdetails {font-size: small;}
.path-mod-quiz .highlightgraded {background:yellow;}
.path-mod-quiz div.tabtree a span img.iconsmall {vertical-align: baseline;}
.ie6.path-mod-quiz div.tabtree a span img.iconsmall {margin: 0;vertical-align: baseline;position: relative;top: 1px;}
.ie7.path-mod-quiz div.tabtree a span img.iconsmall {margin: 0;vertical-align: baseline;position: relative;top: 2px;}
/** Mod quiz edit **/
#page-mod-quiz-edit h2.main{display:inline;padding-right:1em;clear:left;}
#page-mod-quiz-edit div.quizcontents {float:left;width:70%;display:block;clear:left;}
#page-mod-quiz-edit div.quizwhenbankcollapsed {width:100%;}
#page-mod-quiz-edit div.quizpage {display:block;clear:both;width:100%;}
@@ -287,6 +276,30 @@ body#question-preview .controls{text-align: center;}
#page-mod-quiz-edit .editq div.question div.description div.content .questiontext {max-width: 75%;}
#page-mod-quiz-edit .editq div.question div.qnum{font-size:1.5em;}
table#categoryquestions td,
#page-mod-quiz-edit table#categoryquestions th{overflow:hidden;white-space:nowrap;}
.questionbankwindow.block {float:right;width:30%;right:0.3em;padding-bottom:0.5em;display:block;border-width:0;}
.questionbankwindow.block .content {padding:0;}
.questionbankwindow .choosecategory,
.questionbankwindow .createnewquestion {padding: 0.3em;}
.questionbankwindow .createnewquestion .singlebutton {display: inline;}
.questionbankwindow #catmenu_jump {display: block;}
.questionbank div.categoryquestionscontainer,
.questionbank .categorysortopotionscontainer,
.questionbank .categorypagingbarcontainer,
.questionbank .categoryselectallcontainer{padding-left:0.3em;padding-right:0.3em;}
.noquestionsincategory{clear:both;padding-top:1em;padding-bottom:1em;}
.modulespecificbuttonscontainer{padding-left:0.3em;padding-right:0.3em;}
.quizquestionlistcontrols {text-align: center;}
.categoryinfo {padding: 0.3em;}
.path-mod-quiz .gradingdetails {font-size: small;}
body #quizcontentsblock #repaginatedialog {display: none;}
body.jsenabled #quizcontentsblock #repaginatedialog .hd {display:block;}
body.jsenabled #quizcontentsblock #repaginatedialog .bd {padding:1em;}
@@ -374,4 +387,7 @@ bank window's title is prominent enough*/
.ie6#page-mod-quiz-edit div.question div.content .questiontext {width:50%;}
.ie6#page-mod-quiz-edit div.question div.content .questionname {width:20%;}
.ie6#page-mod-quiz-edit .editq div.question div.content .randomquestioncategory a{width:40%;}
.ie6#page-mod-quiz-edit .reorder .questioncontentcontainer .randomquestioncategory label{width: 35%;}
.ie6#page-mod-quiz-edit .reorder .questioncontentcontainer .randomquestioncategory label{width: 35%;}
/** settings.php */
#adminquizreviewoptions {margin-bottom: 0.5em;}
+3 -3
View File
@@ -740,7 +740,7 @@ class question_usage_by_activity {
}
/** @return array all the identifying numbers of all the questions in this usage. */
public function get_question_numbers() {
public function get_slots() {
return array_keys($this->questionattempts);
}
@@ -1016,7 +1016,7 @@ class question_usage_by_activity {
public function process_all_actions($timestamp = null, $postdata = null) {
$slots = question_attempt::get_submitted_var('slots', PARAM_SEQUENCE, $postdata);
if (is_null($slots)) {
$slots = $this->get_question_numbers();
$slots = $this->get_slots();
} else if (!$slots) {
$slots = array();
} else {
@@ -1239,7 +1239,7 @@ class question_attempt_iterator implements Iterator, ArrayAccess {
*/
public function __construct(question_usage_by_activity $quba) {
$this->quba = $quba;
$this->slots = $quba->get_question_numbers();
$this->slots = $quba->get_slots();
$this->rewind();
}
+15 -15
View File
@@ -44,19 +44,19 @@ Internal changes
admin/report/quizupgrade/resetquiz.php | 70 +
admin/report/quizupgrade/settings.php | 5 +
lang/en_utf8/help/question/generalfeedback.html | 14 +
lang/en_utf8/help/question/howquestionsbehave.html | 13 +
lang/en_utf8/help/question/penalty.html | 11 +
lang/en_utf8/help/question/questiontext.html | 7 +
DONE lang/en_utf8/help/question/generalfeedback.html | 14 +
DONE lang/en_utf8/help/question/howquestionsbehave.html | 13 +
DONE lang/en_utf8/help/question/penalty.html | 11 +
DONE lang/en_utf8/help/question/questiontext.html | 7 +
lang/en_utf8/help/quiz/decimalplacesquestion.html | 6 +
lang/en_utf8/help/quiz/showuserpicture.html | 7 +
lang/en_utf8/qtype_match.php | 7 -
lang/en_utf8/qtype_multichoice.php | 34 -
lang/en_utf8/qtype_numerical.php | 10 -
lang/en_utf8/qtype_random.php | 4 -
lang/en_utf8/qtype_shortanswer.php | 6 -
lang/en_utf8/qtype_truefalse.php | 13 -
lang/en_utf8/question.php | 104 +-
DONE lang/en_utf8/qtype_match.php | 7 -
DONE lang/en_utf8/qtype_multichoice.php | 34 -
DONE lang/en_utf8/qtype_numerical.php | 10 -
DONE lang/en_utf8/qtype_random.php | 4 -
DONE lang/en_utf8/qtype_shortanswer.php | 6 -
DONE lang/en_utf8/qtype_truefalse.php | 13 -
DONE lang/en_utf8/question.php | 104 +-
lang/en_utf8/quiz.php | 207 ++-
lang/en_utf8/quiz_grading.php | 18 -
lang/en_utf8/quiz_overview.php | 30 -
@@ -68,7 +68,7 @@ DONE lib/questionlib.php | 1434 ++--------
DONE mod/quiz/accessrules.php | 828 ++++++
DONE mod/quiz/attempt.php | 742 ++----
DONE mod/quiz/attempt_close_js.php | 27 -
mod/quiz/attemptlib.php | 1219 +++++++++
DONE mod/quiz/attemptlib.php | 1219 +++++++++
mod/quiz/backuplib.php | 16 +-
mod/quiz/comment.php | 171 +-
mod/quiz/config.html | 304 ++-
@@ -160,9 +160,9 @@ DONE mod/quiz/version.php | 6 +-
mod/quiz/report/statistics/statistics_table.php | 335 +++
mod/quiz/report/statistics/version.php | 26 +
theme/standard/styles_color.css | 72 +-
theme/standard/styles_fonts.css | 20 +-
theme/standard/styles_layout.css | 265 ++-
DONE theme/standard/styles_color.css | 72 +-
DONE theme/standard/styles_fonts.css | 20 +-
DONE theme/standard/styles_layout.css | 265 ++-
DONE pix/i/flagged.png | Bin 0 -> 193 bytes
DONE pix/i/ne_red_mark.png | Bin 0 -> 121 bytes