--- loncom/interface/lonquickgrades.pm 2004/12/11 23:33:05 1.33 +++ loncom/interface/lonquickgrades.pm 2008/08/17 23:25:40 1.42 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.33 2004/12/11 23:33:05 albertel Exp $ +# $Id: lonquickgrades.pm,v 1.42 2008/08/17 23:25:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,8 @@ use Apache::Constants qw(:common :http); use POSIX; use Apache::loncommon; use Apache::lonlocal; +use Apache::lonnet; +use Apache::grades; sub handler { my $r = shift; @@ -46,36 +48,31 @@ sub real_handler { &Apache::loncommon::get_unprocessed_cgi($ENV{QUERY_STRING}); # Handle header-only request + if ($env{'browser.mathml'}) { + &Apache::loncommon::content_type($r,'text/xml'); + } else { + &Apache::loncommon::content_type($r,'text/html'); + } if ($r->header_only) { - if ($ENV{'browser.mathml'}) { - &Apache::loncommon::content_type($r,'text/xml'); - } else { - &Apache::loncommon::content_type($r,'text/html'); - } - $r->send_http_header; + $r->send_http_header; return OK; } # Send header, don't cache this page - if ($ENV{'browser.mathml'}) { - &Apache::loncommon::content_type($r, 'text/xml'); - } else { - &Apache::loncommon::content_type($r, 'text/html'); - } &Apache::loncommon::no_cache($r); $r->send_http_header; my $showPoints = - $ENV{'course.'.$ENV{'request.course.id'}.'.grading'} eq 'standard'; + $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard'; my $notshowSPRSlink = - $ENV{'course.'.$ENV{'request.course.id'}.'.grading'} eq 'external'; + $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'external'; # Create the nav map my $navmap = Apache::lonnavmaps::navmap->new(); if (!defined($navmap)) { my $requrl = $r->uri; - $ENV{'user.error.msg'} = "$requrl:bre:0:0:Navamp initialization failed."; + $env{'user.error.msg'} = "$requrl:bre:0:0:Navamp initialization failed."; return HTTP_NOT_ACCEPTABLE; } @@ -85,7 +82,7 @@ sub real_handler { # Header my $title = $showPoints ? "Points Display" : "Completed Problems Display"; - $r->print(&Apache::loncommon::bodytag($title, '', '')); + $r->print(&Apache::loncommon::start_page($title)); if (!$showPoints && !$notshowSPRSlink ) { $r->print(<.

HEADER } - $r->print("This may take a few moments to display."); + $r->print(&mt('This may take a few moments to display.')); $r->rflush(); @@ -148,7 +145,8 @@ HEADER my $score = 0; # If we're not telling status and the answer date isn't passed yet, # it's an "attempted" point - if ($curRes->problemstatus($part) eq 'no' && + if ((($curRes->problemstatus($part) eq 'no') || + ($curRes->problemstatus($part) eq 'no_feedback_ever')) && ($dateStatus != $curRes->ANSWER_OPEN)) { my $status = $curRes->simpleStatus($part); if ($status == $curRes->ATTEMPTED) { @@ -156,7 +154,7 @@ HEADER $totalAttempted += $partsAttempted; } } else { - $score = $curRes->weight($part) * $curRes->awarded($part); + $score = &Apache::grades::compute_points($curRes->weight($part), $curRes->awarded($part)); } $partsRight += $score; $totalRight += $score; @@ -170,7 +168,8 @@ HEADER my $status = $curRes->simpleStatus($part); my $thisright = 0; $partsCount++; - if ($status == $curRes->CORRECT ) { + if ($status == $curRes->CORRECT || + $status == $curRes->PARTIALLY_CORRECT ) { $partsRight++; $totalRight++; $thisright = 1; @@ -273,17 +272,18 @@ HEADER $r->print("$topLevelRight / $topLevelParts"); } - my $maxHelpLink = Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); - - $title = $showPoints ? "Points" : "Parts Done"; - - $r->print("Total $title: $totalRight
"); - $r->print(&mt("Max Possible To Date")." $maxHelpLink: $totalPossible
"); - $title = $showPoints ? "Points" : "Parts"; - $r->print(&mt("Total $title In Course").": $totalParts\n\n"); + if ($showPoints) { + my $maxHelpLink = Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); + $title = $showPoints ? "Points" : "Parts Done"; + my $totaltitle = $showPoints ? &mt("Awarded Total Points") : &mt("Total Parts Done"); + $r->print("$totaltitle: $totalRight
"); + $r->print(&mt("Max Possible To Date")." $maxHelpLink: $totalPossible
"); + $title = $showPoints ? "Points" : "Parts"; + $r->print(&mt("Total $title In Course").": $totalParts\n\n"); + } - $r->print(""); + $r->print("".&Apache::loncommon::end_page()); return OK; }