Diff for /loncom/interface/lonquickgrades.pm between versions 1.13 and 1.15

version 1.13, 2003/03/28 18:14:59 version 1.15, 2003/06/18 19:31:38
Line 107  HEADER Line 107  HEADER
     #  the counts to the parent map.)      #  the counts to the parent map.)
   
     my $totalParts = 0; my $totalPossible = 0; my $totalRight = 0;      my $totalParts = 0; my $totalPossible = 0; my $totalRight = 0;
       my $now = time();
       my $topLevelParts = 0; my $topLevelRight = 0;
   
     # Pre-run: Count parts correct      # Pre-run: Count parts correct
     while ( $depth > 0 ) {      while ( $depth > 0 ) {
Line 117  HEADER Line 119  HEADER
         {          {
             # Get number of correct, incorrect parts              # Get number of correct, incorrect parts
             my $parts = $curRes->parts();              my $parts = $curRes->parts();
             if (scalar(@{$parts}) > 1) { shift @{$parts}; } # lose the first "0"              $totalParts += $curRes->countParts();
             $totalParts += scalar(@{$parts});  
             my $partsRight = 0;              my $partsRight = 0;
             my $stack = $iterator->getStack();              my $stack = $iterator->getStack();
                           
             for my $part (@{$parts}) {              for my $part (@{$parts}) {
                 my $status = $curRes->getCompletionStatus($part);                  my $status = $curRes->getCompletionStatus($part);
                   my $thisright = 0;
                 if ($status == $curRes->CORRECT || $status == $curRes->CORRECT_BY_OVERRIDE                  if ($status == $curRes->CORRECT || $status == $curRes->CORRECT_BY_OVERRIDE
                     || $status == $curRes->EXCUSED) {                      || $status == $curRes->EXCUSED || $status == $curRes->ANSWER_SUBMITTED) {
                     $partsRight++;                      $partsRight++;
                     $totalRight++;                      $totalRight++;
                       $thisright = 1;
                 }                  }
   
                 my $dateStatus = $curRes->getDateStatus($part);                  my $dateStatus = $curRes->getDateStatus($part);
                 if ($status != $curRes->OPEN_LATER) {                  if ($curRes->opendate($part) < $now) {
                     $totalPossible++;                      $totalPossible++;
                 }                  }
             }              }
               
               if ($depth == 1) { # in top-level only
    $topLevelParts += scalar(@{$parts});
    $topLevelRight += $partsRight;
    $r->print($curRes->compTitle() . '<br>');
       }
   
             # Crawl down stack and record parts correct and total              # Crawl down stack and record parts correct and total
             for my $res (@{$stack}) {              for my $res (@{$stack}) {
                 if (ref($res) && $res->is_map()) {                  if (ref($res) && $res->is_map()) {
Line 162  HEADER Line 171  HEADER
   
     my $indentString = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';      my $indentString = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
   
     my $unaccountedTotal = $totalParts;  
     my $unaccountedCorrect = $totalRight;  
   
     # Second pass: Print the maps.      # Second pass: Print the maps.
     $r->print('<table cellspacing="3" border="2"><tr><td align="center"><b>Sequence</b></td>');      $r->print('<table cellspacing="3" border="2"><tr><td align="center"><b>Sequence</b></td>');
     $r->print('<td align="center">Done / Total</td><tr>' . "\n\n");      $r->print('<td align="center">Done / Total</td><tr>' . "\n\n");
Line 173  HEADER Line 179  HEADER
         if ($curRes == $iterator->END_MAP()) { $depth--; }          if ($curRes == $iterator->END_MAP()) { $depth--; }
   
         if (ref($curRes) && $curRes->is_map()) {          if (ref($curRes) && $curRes->is_map()) {
             my $stack = $iterator->getStack();  
             my $src = Apache::lonnavmaps::getLinkForResource($stack);  
             my $srcHasQuestion = $src =~ /\?/;  
             my $link = $src.  
                 ($srcHasQuestion?'&':'?') .  
                 'symb='.&Apache::lonnet::escape($curRes->symb()).  
                 '"';  
             my $title = $curRes->compTitle();              my $title = $curRes->compTitle();
                           
             my $correct = $curRes->{DATA}->{CHILD_CORRECT};              my $correct = $curRes->{DATA}->{CHILD_CORRECT};
             my $total = $curRes->{DATA}->{CHILD_PARTS};              my $total = $curRes->{DATA}->{CHILD_PARTS};
   
             $unaccountedTotal -= $total;  
             $unaccountedCorrect -= $correct;  
   
             if ($total > 0) {              if ($total > 0) {
                 my $ratio;                  my $ratio;
                 $ratio = $correct / $total;                  $ratio = $correct / $total;
                 my $color = mixColors(\@start, \@end, $ratio);                  my $color = mixColors(\@start, \@end, $ratio);
                 $r->print("<tr><td bgcolor='$color'>");                  $r->print("<tr><td bgcolor='$color'>");
                                   
                 for (my $i = 1; $i < $depth; $i++) { $r->print($indentString); }   my $thisIndent = '';
                   for (my $i = 1; $i < $depth; $i++) { $thisIndent .= $indentString; }
                                   
                 $r->print("<a href='$link'>$title</a></td>");                  $r->print("$thisIndent$title</td>");
                 $r->print("<td align='center'>$correct / $total</td></tr>\n");                  $r->print("<td valign='top'>$thisIndent<nobr>$correct / $total</nobr></td></tr>\n");
             }              }
         }          }
   
Line 205  HEADER Line 202  HEADER
     }      }
   
     # If there were any problems at the top level, print an extra "catchall"      # If there were any problems at the top level, print an extra "catchall"
     if ($unaccountedTotal > 0) {      if ($topLevelParts > 0) {
         my $ratio = $unaccountedCorrect / $unaccountedTotal;          my $ratio = $topLevelRight / $topLevelParts;
         my $color = mixColors(\@start, \@end, $ratio);          my $color = mixColors(\@start, \@end, $ratio);
         $r->print("<tr><td bgcolor='$color'>");          $r->print("<tr><td bgcolor='$color'>");
         $r->print("Problems Not Contained In Sequences</td><td align='center'>");          $r->print("Problems Not Contained In A Folder</td><td>");
         $r->print("$unaccountedCorrect / $unaccountedTotal</td></tr>");          $r->print("$topLevelRight / $topLevelParts</td></tr>");
     }      }
   
     my $maxHelpLink = Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct");      my $maxHelpLink = Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct");

Removed from v.1.13  
changed lines
  Added in v.1.15


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>