--- loncom/interface/lonquickgrades.pm 2003/06/25 19:01:23 1.19 +++ loncom/interface/lonquickgrades.pm 2003/09/22 00:48:32 1.25 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# +# $Id: lonquickgrades.pm,v 1.25 2003/09/22 00:48:32 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,6 +32,8 @@ package Apache::lonquickgrades; use strict; use Apache::Constants qw(:common :http); use POSIX; +use Apache::loncommon; +use Apache::lonlocal; sub handler { my $r = shift; @@ -46,9 +48,9 @@ sub real_handler { # Handle header-only request if ($r->header_only) { if ($ENV{'browser.mathml'}) { - $r->content_type('text/xml'); + &Apache::loncommon::content_type($r,'text/xml'); } else { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); } $r->send_http_header; return OK; @@ -56,19 +58,18 @@ sub real_handler { # Send header, don't cache this page if ($ENV{'browser.mathml'}) { - $r->content_type('text/xml'); + &Apache::loncommon::content_type('text/xml'); } else { - $r->content_type('text/html'); + &Apache::loncommon::content_type('text/html'); } &Apache::loncommon::no_cache($r); $r->send_http_header; - my $showPoints = $ENV{'course.'.$ENV{'request.course.id'}.'.grading'} eq 'standard'; + my $showPoints = + $ENV{'course.'.$ENV{'request.course.id'}.'.grading'} eq 'standard'; # Create the nav map - my $navmap = Apache::lonnavmaps::navmap->new( - $ENV{"request.course.fn"}.".db", - $ENV{"request.course.fn"}."_parms.db", 1, 0, 1); + my $navmap = Apache::lonnavmaps::navmap->new(); if (!defined($navmap)) { my $requrl = $r->uri; @@ -84,25 +85,18 @@ sub real_handler { my $title = $showPoints ? "Quick Points Display" : "Quick Completed Problems Display"; $r->print(&Apache::loncommon::bodytag($title, '', '')); - if ($showPoints) { - $r->print(<print(<This screen shows how many problems (or problem parts) you have completed, and how many you have not yet done. You can also look at a detailed score sheet.

HEADER - } else { - $r->print(<This screen shows how many points you have. You can also look at -a detailed score sheet.

-HEADER } - $r->print("

This may take a few moments to display.

"); + $r->print("This may take a few moments to display."); $r->rflush(); - $navmap->init(); - # End navmap using boilerplate my $iterator = $navmap->getIterator(undef, undef, undef, 1); @@ -140,6 +134,9 @@ HEADER my $stack = $iterator->getStack(); for my $part (@{$parts}) { + if ($curRes->getCompletionStatus($part) == $curRes->EXCUSED()) { + next; + } if ($showPoints) { my $score = $curRes->weight($part) * $curRes->awarded($part); $partsRight += $score; @@ -147,7 +144,7 @@ HEADER $partsCount += $curRes->weight($part); if ($curRes->opendate($part) < $now) { - $totalPossible += $curRes->weight(); + $totalPossible += $curRes->weight($part); } $totalParts += $curRes->weight($part); } else { @@ -156,7 +153,6 @@ HEADER $partsCount++; if ($status == $curRes->CORRECT || $status == $curRes->CORRECT_BY_OVERRIDE || - $status == $curRes->EXCUSED || $status == $curRes->ANSWER_SUBMITTED) { $partsRight++; $totalRight++; @@ -174,7 +170,6 @@ HEADER if ($depth == 1) { # in top-level only $topLevelParts += $partsCount; $topLevelRight += $partsRight; - $r->print($curRes->compTitle() . '
'); } # Crawl down stack and record parts correct and total @@ -204,8 +199,9 @@ HEADER my $indentString = '     '; # Second pass: Print the maps. - $r->print(''); - $r->print('' . "\n\n"); + $r->print('
SequenceDone / Total
'); + $title =&mt($showPoints ? "Points Scored" : "Done"); + $r->print("" . "\n\n"); while ($depth > 0) { if ($curRes == $iterator->BEGIN_MAP()) {$depth++;} if ($curRes == $iterator->END_MAP()) { $depth--; } @@ -238,7 +234,7 @@ HEADER my $ratio = $topLevelRight / $topLevelParts; my $color = mixColors(\@start, \@end, $ratio); $r->print(""); } @@ -247,9 +243,9 @@ HEADER $title = $showPoints ? "Points" : "Parts Done"; $r->print("\n\n"); + $r->print(&mt("Total $title In Course").": $totalParts\n\n"); $r->print("
Folder$title / Total
"); - $r->print("Problems Not Contained In A Folder"); + $r->print(&mt("Problems Not Contained In A Folder").""); $r->print("$topLevelRight / $topLevelParts
Total $title: $totalRight
"); - $r->print("Max Possible To Date $maxHelpLink: $totalPossible
"); + $r->print(&mt("Max Possible To Date")." $maxHelpLink: $totalPossible
"); $title = $showPoints ? "Points" : "Parts"; - $r->print("Total $title In Course: $totalParts
");