--- loncom/interface/lonquickgrades.pm 2003/06/25 18:30:27 1.17
+++ 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(<
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); @@ -135,28 +129,30 @@ HEADER { # Get number of correct, incorrect parts my $parts = $curRes->parts(); - $totalParts += $curRes->countParts(); my $partsRight = 0; my $partsCount = 0; my $stack = $iterator->getStack(); for my $part (@{$parts}) { + if ($curRes->getCompletionStatus($part) == $curRes->EXCUSED()) { + next; + } if ($showPoints) { - my $score = $curRes->weight() * $curRes->awarded(); + my $score = $curRes->weight($part) * $curRes->awarded($part); $partsRight += $score; $totalRight += $score; - $partsCount += $curRes->weight(); - + $partsCount += $curRes->weight($part); + if ($curRes->opendate($part) < $now) { - $totalPossible += $curRes->weight(); + $totalPossible += $curRes->weight($part); } + $totalParts += $curRes->weight($part); } else { my $status = $curRes->getCompletionStatus($part); my $thisright = 0; $partsCount++; if ($status == $curRes->CORRECT || $status == $curRes->CORRECT_BY_OVERRIDE || - $status == $curRes->EXCUSED || $status == $curRes->ANSWER_SUBMITTED) { $partsRight++; $totalRight++; @@ -164,6 +160,7 @@ HEADER } my $dateStatus = $curRes->getDateStatus($part); + $totalParts++; if ($curRes->opendate($part) < $now) { $totalPossible++; } @@ -171,9 +168,8 @@ HEADER } if ($depth == 1) { # in top-level only - $topLevelParts += scalar(@{$parts}); + $topLevelParts += $partsCount; $topLevelRight += $partsRight; - $r->print($curRes->compTitle() . 'Sequence | '); - $r->print('Done / Total | |||||
Folder | '); + $title =&mt($showPoints ? "Points Scored" : "Done"); + $r->print("$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 |