--- loncom/interface/lonquickgrades.pm 2003/09/25 19:22:14 1.28 +++ loncom/interface/lonquickgrades.pm 2006/02/27 19:40:43 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.28 2003/09/25 19:22:14 bowersj2 Exp $ +# $Id: lonquickgrades.pm,v 1.39 2006/02/27 19:40:43 albertel 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; @@ -47,7 +49,7 @@ sub real_handler { # Handle header-only request if ($r->header_only) { - if ($ENV{'browser.mathml'}) { + if ($env{'browser.mathml'}) { &Apache::loncommon::content_type($r,'text/xml'); } else { &Apache::loncommon::content_type($r,'text/html'); @@ -57,7 +59,7 @@ sub real_handler { } # Send header, don't cache this page - if ($ENV{'browser.mathml'}) { + if ($env{'browser.mathml'}) { &Apache::loncommon::content_type($r, 'text/xml'); } else { &Apache::loncommon::content_type($r, 'text/html'); @@ -66,14 +68,16 @@ sub real_handler { $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'; # 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; } @@ -82,10 +86,10 @@ sub real_handler { my $res = $navmap->firstResource(); # temp resource to access constants # Header - my $title = $showPoints ? "Quick Points Display" : "Quick Completed Problems Display"; + my $title = $showPoints ? "Points Display" : "Completed Problems Display"; $r->print(&Apache::loncommon::bodytag($title, '', '')); - if (!$showPoints) { + if (!$showPoints && !$notshowSPRSlink ) { $r->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 @@ -148,10 +152,13 @@ HEADER # it's an "attempted" point if ($curRes->problemstatus($part) eq 'no' && ($dateStatus != $curRes->ANSWER_OPEN)) { - $partsAttempted += $curRes->weight($part); - $totalAttempted += $partsAttempted; + my $status = $curRes->simpleStatus($part); + if ($status == $curRes->ATTEMPTED) { + $partsAttempted += $curRes->weight($part); + $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; @@ -165,8 +172,8 @@ HEADER my $status = $curRes->simpleStatus($part); my $thisright = 0; $partsCount++; - if ($status == $curRes->CORRECT || - $status == $curRes->INCORRECT ) { + if ($status == $curRes->CORRECT || + $status == $curRes->PARTIALLY_CORRECT ) { $partsRight++; $totalRight++; $thisright = 1; @@ -269,20 +276,19 @@ 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"; + + $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"); + } $r->print(""); - $navmap->untieHashes(); - return OK; }