]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-10374 - Quiz layout improvements, selectively merged from OU-moodle.
authortjhunt <tjhunt>
Fri, 6 Jul 2007 16:37:06 +0000 (16:37 +0000)
committertjhunt <tjhunt>
Fri, 6 Jul 2007 16:37:06 +0000 (16:37 +0000)
mod/quiz/attempt.php
mod/quiz/attempt_close_js.php
mod/quiz/review.php
mod/quiz/view.php
question/type/question.html
question/type/truefalse/display.html
theme/standard/styles_color.css
theme/standard/styles_ie6.css
theme/standard/styles_layout.css

index 367c3d7a47cfd030114ea26a038c433230af6146..51d2b41983ffbb9c5334358bab177726a930b5c5 100644 (file)
         </script>
         <?php
         quiz_print_navigation_panel($page, $numpages);
-        echo "<br />\n";
     }
 
 /// Print all the questions
     foreach ($pagequestions as $i) {
         $options = quiz_get_renderoptions($quiz->review, $states[$i]);
         // Print the question
-        if ($i > 0) {
-            echo "<br />\n";
-        }
         print_question($questions[$i], $states[$i], $number, $quiz, $options);
         save_question_session($questions[$i], $states[$i]);
         $number += $questions[$i]->length;
 
     // Print the navigation panel if required
     if ($numpages > 1) {
-        echo "<br />\n";
         quiz_print_navigation_panel($page, $numpages);
-        echo '<br />';
     }
 
     // Finish the form
index 1d33058a80832d68797f31174315e7e5cdaec580..3ba2d5b6dcf68c126b286d311323ff6708aaf97b 100644 (file)
@@ -1,6 +1,6 @@
 <?php defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');?>
 
-<div class="boxaligncenter">
+<div class="controls">
 <?php
 if (!empty($popup)) {
 ?>
index c47b2dd6e3c02b892c213381027573c58d41fb38..fc60e8bb3f164d4795def1c8819fdd348f088439 100644 (file)
     } else {
         print_heading(format_string($quiz->name));
     }
+    if ($isteacher and $attempt->userid == $USER->id) {
+        // the teacher is at the end of a preview. Print button to start new preview
+        unset($buttonoptions);
+        $buttonoptions['q'] = $quiz->id;
+        $buttonoptions['forcenew'] = true;
+        echo '<div class="controls">';
+        print_single_button($CFG->wwwroot.'/mod/quiz/attempt.php', $buttonoptions, get_string('startagain', 'quiz'));
+        echo '</div>';
+    } else { // print number of the attempt
+        print_heading(get_string('reviewofattempt', 'quiz', $attempt->attempt));
+    }
+
+    // print javascript button to close the window, if necessary
+    if (!$isteacher) {
+        include('attempt_close_js.php');
+    }
 
 /// Print infobox
 
     } else {
         $timetaken = get_string('unfinished', 'quiz');
     }
-
-    $table->align  = array("right", "left");
+    echo '<table class="generaltable generalbox quizreviewsummary"><tbody>';
     if ($attempt->userid <> $USER->id) {
-       $student = get_record('user', 'id', $attempt->userid);
-       $picture = print_user_picture($student->id, $course->id, $student->picture, false, true);
-       $table->data[] = array($picture, '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$student->id.'&amp;course='.$course->id.'">'.fullname($student, true).'</a>');
+        $student = get_record('user', 'id', $attempt->userid);
+        $picture = print_user_picture($student->id, $course->id, $student->picture, false, true);
+        echo '<tr><th scope="row" class="cell">', $picture, '</th><td class="cell"><a href="', $CFG->wwwroot,
+            '/user/view.php?id=', $student->id, '&amp;course='.$course->id.'">',
+            fullname($student, true), '</a></td></tr>';
     }
-    if (has_capability('mod/quiz:grade', $context) and count($attempts = get_records_select('quiz_attempts', "quiz = '$quiz->id' AND userid = '$attempt->userid'", 'attempt ASC')) > 1) {
+    if (has_capability('mod/quiz:grade', $context) and
+            count($attempts = get_records_select('quiz_attempts', "quiz = '$quiz->id' AND userid = '$attempt->userid'", 'attempt ASC')) > 1) {
         // print list of attempts
         $attemptlist = '';
         foreach ($attempts as $at) {
                 ? '<strong>'.$at->attempt.'</strong>, '
                 : '<a href="review.php?attempt='.$at->id.($showall?'&amp;showall=true':'').'">'.$at->attempt.'</a>, ';
         }
-        $table->data[] = array(get_string('attempts', 'quiz').':', trim($attemptlist, ' ,'));
+        echo '<tr><th scope="row" class="cell">', get_string('attempts', 'quiz'), '</th><td class="cell">',
+                trim($attemptlist, ' ,'), '</td></tr>';
     }
 
-    $table->data[] = array(get_string('startedon', 'quiz').':', userdate($attempt->timestart));
+    echo '<tr><th scope="row" class="cell">', get_string('startedon', 'quiz'), '</th><td class="cell">',
+            userdate($attempt->timestart), '</td></tr>';
     if ($attempt->timefinish) {
-        $table->data[] = array("$strtimecompleted:", userdate($attempt->timefinish));
-        $table->data[] = array("$strtimetaken:", $timetaken);
+        echo '<tr><th scope="row" class="cell">', $strtimecompleted, '</th><td class="cell">',
+                userdate($attempt->timefinish), '</td></tr>';
+        echo '<tr><th scope="row" class="cell">', $strtimetaken, '</th><td class="cell">',
+                $timetaken, '</td></tr>';
     }
     if (!empty($overtime)) {
-        $table->data[] = array("$stroverdue:", $overtime);
+        echo '<tr><th scope="row" class="cell">', $stroverdue, '</th><td class="cell">',$overtime, '</td></tr>';
     }
     //if the student is allowed to see their score
     if ($options->scores) {
             $a->grade = $grade;
             $a->maxgrade = $quiz->grade;
             $rawscore = round($attempt->sumgrades, $CFG->quiz_decimalpoints);
-            $table->data[] = array("$strscore:", "$rawscore/$quiz->sumgrades ($percentage %)");
-            $table->data[] = array("$strgrade:", get_string('outof', 'quiz', $a));
+            echo '<tr><th scope="row" class="cell">', $strscore, '</th><td class="cell">',
+                "$rawscore/$quiz->sumgrades ($percentage %)", '</td></tr>';
+            echo '<tr><th scope="row" class="cell">', $strgrade, '</th><td class="cell">',
+                get_string('outof', 'quiz', $a), '</td></tr>';
         }
     }
     if ($options->overallfeedback && $feedback) {
-        $table->data[] = array(get_string('feedback', 'quiz'), $feedback);
-    }
-    if ($isteacher and $attempt->userid == $USER->id) {
-        // the teacher is at the end of a preview. Print button to start new preview
-        unset($buttonoptions);
-        $buttonoptions['q'] = $quiz->id;
-        $buttonoptions['forcenew'] = true;
-        echo '<div class="controls">';
-        print_single_button($CFG->wwwroot.'/mod/quiz/attempt.php', $buttonoptions, get_string('startagain', 'quiz'));
-        echo '</div>';
-    } else { // print number of the attempt
-        print_heading(get_string('reviewofattempt', 'quiz', $attempt->attempt));
-    }
-    print_table($table);
-
-    // print javascript button to close the window, if necessary
-    if (!$isteacher) {
-        include('attempt_close_js.php');
+        echo '<tr><th scope="row" class="cell">', get_string('feedback', 'quiz'), '</th><td class="cell">',
+                $feedback, '</td></tr>';
     }
+    echo '</tbody></table>';
 
 /// Print the navigation panel if required
     $numpages = quiz_number_of_pages($attempt->layout);
         $options->validation = QUESTION_EVENTVALIDATE === $states[$i]->event;
         $options->history = ($isteacher and !$attempt->preview) ? 'all' : 'graded';
         // Print the question
-        if ($i > 0) {
-            echo "<br />\n";
-        }
         print_question($questions[$i], $states[$i], $number, $quiz, $options);
         $number += $questions[$i]->length;
     }
index 016365014733a4ec479317ca92a480ba064926e1..118627a64e5c331d0072dfd40ca4d30c756e53ac 100644 (file)
         // Print table with existing attempts
         if ($attempts) {
 
+            print_heading('Summary of your previous attempts');
+
             // Work out which columns we need, taking account what data is available in each attempt.
             list($someoptions, $alloptions) = quiz_get_combined_reviewoptions($quiz, $attempts, $context);
 
             $overallfeedback = $feedbackcolumn && $alloptions->overallfeedback;
 
             // prepare table header
+            $table->class = 'generaltable quizattemptsummary';
             $table->head = array($strattempt, $strtimecompleted);
             $table->align = array("center", "left");
             $table->size = array("", "");
             if ($markcolumn) {
                 $table->head[] = "$strmarks / $quiz->sumgrades";
-                $table->align[] = 'right';
+                $table->align[] = 'center';
                 $table->size[] = '';
             }
             if ($gradecolumn) {
                 $table->head[] = "$strgrade / $quiz->grade";
-                $table->align[] = 'right';
+                $table->align[] = 'center';
                 $table->size[] = '';
             }
             if ($feedbackcolumn) {
                 $row = array();
 
                 // Add the attempt number, making it a link, if appropriate.
-                $row[] = make_review_link('#' . $attempt->attempt, $quiz, $attempt);
+                $row[] = make_review_link($attempt->attempt, $quiz, $attempt);
 
                 // prepare strings for time taken and date completed
                 $timetaken = '';
 
                 if ($gradecolumn) {
                     if ($attemptoptions->scores) {
+                        $formattedgrade = $attemptgrade;
                         // highlight the highest grade if appropriate
-                        if ($overallstats && !is_null($mygrade) && $attemptgrade == $mygrade && $quiz->grademethod == QUIZ_GRADEHIGHEST) {
-                            $formattedgrade = "<span class='highlight'>$attemptgrade</span>";
-                        } else {
-                            $formattedgrade = $attemptgrade;
+                        if ($overallstats && $numattempts > 1 && !is_null($mygrade) && $attemptgrade == $mygrade && $quiz->grademethod == QUIZ_GRADEHIGHEST) {
+                            $table->rowclass[$attempt->attempt] = 'bestrow';
                         }
 
                         $row[] = make_review_link($formattedgrade, $quiz, $attempt);
                     $row[] = $timetaken;
                 }
 
-                $table->data[] = $row;
+                $table->data[$attempt->attempt] = $row;
             } // End of loop over attempts.
             print_table($table);
         }
index 0ca5bbbe58b4916edc5d9a5a7a32c271f15fd686..416e9ddede808d5b81ce760135550ef39af92e1d 100644 (file)
     <?php } ?>
   </div>
   <div class="content">
-    <?php $this->print_question_formulation_and_controls($question, $state, $cmoptions, $options); ?>
-    <div class="grading">
-      <?php $this->print_question_grading_details($question, $state, $cmoptions, $options); ?>
-    </div>
-    <?php if ($comment) { ?>
+    <?php $this->print_question_formulation_and_controls($question, $state, $cmoptions, $options);
+    if ($generalfeedback) { ?>
+      <div class="generalfeedback">
+        <?php echo $generalfeedback ?>
+      </div>
+    <?php }
+    if ($comment) { ?>
       <div class="comment">
         <?php
           echo get_string('comment', 'quiz').': ';
         ?>
       </div>
     <?php }
-    echo $commentlink;
-    if ($generalfeedback) { ?>
-      <div class="generalfeedback">
-        <?php echo $generalfeedback ?>
-      </div>
-    <?php }
+    echo $commentlink;  ?>
+    <div class="grading">
+      <?php $this->print_question_grading_details($question, $state, $cmoptions, $options); ?>
+    </div><?php
     if ($history) { ?>
       <div class="history">
         <?php
index ea9e536fbc7cc3a3a45107b962c8abb3231ce331..6cc2e49bd4bc563435f76bc1e1e506786d4e84ef 100644 (file)
   </div>
 
   <div class="answer">
-    <span <?php echo 'class="'.$trueclass.'"'; ?>>
+    <span <?php echo 'class="r0 '.$trueclass.'"'; ?>>
         <?php echo $radiotrue ?>
         <?php echo $truefeedbackimg; ?>
     </span>
-    <span <?php echo 'class="'.$falseclass.'"'; ?>>
+    <span <?php echo 'class="r1 '.$falseclass.'"'; ?>>
         <?php echo $radiofalse ?>
         <?php echo $falsefeedbackimg; ?>
     </span>
index 5283681ebdfc76c66045ffeeaef71b14efc7253c..e1ffefd12e6359fccec06a4df754d2dca11a987e 100644 (file)
@@ -761,8 +761,7 @@ table.message_search_results td {
 }
 .calculated .answer,
 .numerical .answer,
-.shortanswer .answer,
-.truefalse .answer {
+.shortanswer .answer {
     background-color: #EEE;
 }
 .que .feedback {
@@ -963,13 +962,16 @@ table.message_search_results td {
  *** Modules: Quiz
  ***/
 
-/* body#mod-quiz-report table#attempts td {
-  border-color: #dddddd;
+table.quizattemptsummary .bestrow td {
+  background-color: #e8e8e8;
 }
-body#mod-quiz-report table#attempts .r1 {
-  background-color: #eeeeee;
+
+table.quizreviewsummary th.cell {
+  background: #f0f0f0;
+}
+table.quizreviewsummary td.cell {
+  background: #fafafa;
 }
- */
 
 /***
  *** Modules: Resource
index 8f2d85dd43a19eb012a5e97df11ea5f632de8e7f..72c7fd451fedb5810d12f1760da9f92780494482 100755 (executable)
@@ -47,4 +47,8 @@ form.mform input {
 
 form.mform textarea {
  margin-left: -10px;
-}
\ No newline at end of file
+}
+
+.que .info {
+  margin-left: 0.6em;
+}
index 400132642fc42ccd8a9bed0ca244109fe6d2c51a..6e8b04055a9b3ff6bdefcc523d1bb12a82718a85 100644 (file)
@@ -2418,22 +2418,27 @@ body#message-messages {
 
 .que {
   text-align: left;
-  margin: 10px auto 15px auto;
+  margin: 0 auto 1.8em auto;
   border: 1px solid;
   clear: both;
 }
 .que .info {
   float: left;
-  margin: 5px 0 5px 5px;
+  margin: 0.5em 0 0.5em 1.2em;
   width: 8%;
 }
-.que .grade {
-  margin-top: 0.5em;
-}
 .que .content {
   float: left;
-  margin: 5px 0 5px 5px;
-  width: 88%;
+  margin: 0.5em 1.2em 0.5em 0;
+  width: 85%;
+}
+.que.description .info {
+  display: none;
+}
+.que.description .content {
+  margin-left: 1.2em;
+  float: none;
+  width: auto;
 }
 .que .qtext {
   margin-bottom: 1.5em;
@@ -2492,19 +2497,15 @@ body#message-messages {
 }
 .calculated .answer,
 .numerical .answer,
-.shortanswer .answer,
-.truefalse .answer {
-  padding: 0.3em 0 0.3em 0.3em;
-}
-.calculated .answer input,
-.numerical .answer input,
-.shortanswer .answer input {
-  width: 85%;
+.shortanswer .answer {
+  padding: 0.3em;
+  width: auto;
 }
 .truefalse .answer span {
   float: left;
   clear: left;
-  padding: 0.2em 0;
+  padding: 0.3em;
+  width: 100%;
 }
 .que .grading,
 .que .comment,
@@ -2513,6 +2514,9 @@ body#message-messages {
 .que .history {
   margin-top: 0.5em;
 }
+.que .grade {
+  margin-top: 0.5em;
+}
 
 .importerror {
   margin-top: 10px;
@@ -3343,10 +3347,57 @@ body#mod-forum-search .introcontent {
  *** Modules: Quiz
  ***/
 
+#mod-quiz-view .quizinfo {
+  text-align: center;
+}
+#mod-quiz-view #page .quizgradefeedback,
+#mod-quiz-view #page .quizattempt
+{
+  text-align: center;
+}
 
 #mod-quiz-attempt #page {
   text-align: center;
 }
+#mod-quiz-attempt .pagingbar {
+  margin: 1.5em auto;
+}
+
+body#question-preview .quemodname,
+body#question-preview .controls
+{
+  text-align: center;
+}
+body#question-preview .quemodname, body#question-preview .controls {
+  text-align: center;
+}
+
+#mod-quiz-review #page .controls {
+  text-align: center;
+  margin: 1.5em auto;
+}
+#mod-quiz-review .pagingbar {
+  margin: 1.5em auto;
+}
+#mod-quiz-review .pagingbar {
+  margin: 1.5em auto;
+}
+table.quizreviewsummary {
+  margin-bottom: 1.8em;
+  width: 100%;
+}
+table.quizreviewsummary tr {
+}
+table.quizreviewsummary th.cell {
+  padding: 1px 0.5em 1px 1em;
+  font-weight: bold;
+  text-align: right;
+  width: 10em;
+}
+table.quizreviewsummary td.cell {
+  padding: 1px 1em 1px 0.5em;
+}
+
 #mod-quiz-edit #page .controls,
 #mod-quiz-edit #page .attemptsnotice
 {
@@ -3358,11 +3409,10 @@ body#mod-forum-search .introcontent {
 #mod-quiz-edit #showbreaks {
   margin-top: 0.7em;
 }
-body#question-preview .quemodname,
-body#question-preview .controls
-{
+.quizquestionlistcontrols {
   text-align: center;
 }
+
 body#mod-quiz-report table#attempts,
 body#mod-quiz-report table#commands,
 body#mod-quiz-report table#itemanalysis
@@ -3404,23 +3454,6 @@ body#mod-quiz-report table#attempts .picture {
 body#mod-quiz-report .controls {
   text-align: center;
 }
-#mod-quiz-review #page .controls {
-  text-align: center;
-}
-#mod-quiz-view .quizinfo {
-  text-align: center;
-}
-#mod-quiz-view #page .quizgradefeedback,
-#mod-quiz-view #page .quizattempt
-{
-  text-align: center;
-}
-.quizquestionlistcontrols {
-  text-align: center;
-}
-body#question-preview .quemodname, body#question-preview .controls {
-  text-align: center;
-}
 
 /***
  *** Modules: Resource