--- loncom/interface/lonquickgrades.pm 2017/04/02 13:42:06 1.49.6.3 +++ loncom/interface/lonquickgrades.pm 2010/11/29 22:37:26 1.51 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.49.6.3 2017/04/02 13:42:06 raeburn Exp $ +# $Id: lonquickgrades.pm,v 1.51 2010/11/29 22:37:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -29,13 +29,12 @@ package Apache::lonquickgrades; use strict; -use Apache::Constants qw(:common :http REDIRECT); +use Apache::Constants qw(:common :http); use POSIX; use Apache::loncommon; use Apache::lonlocal; use Apache::lonnet; use Apache::grades; -use Apache::lonuserstate; sub handler { my $r = shift; @@ -58,37 +57,6 @@ sub real_handler { return OK; } - unless (&Apache::lonnet::allowed('mgr')) { - # Check for critical messages and redirect if present. - my ($redirect,$url) = &Apache::loncommon::critical_redirect(300); - if ($redirect) { - &Apache::loncommon::content_type($r,'text/html'); - $r->header_out(Location => $url); - return REDIRECT; - } - - # Check if course needs to be re-initialized - my $loncaparev = $r->dir_config('lonVersion'); - my ($result,@reinit) = &Apache::loncommon::needs_coursereinit($loncaparev); - - if ($result eq 'switch') { - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - $r->print(&Apache::loncommon::check_release_result(@reinit)); - return OK; - } elsif ($result eq 'update') { - my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); - if ($ferr) { - my $requrl = $r->uri; - $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized"; - $env{'user.reinit'} = 1; - return HTTP_NOT_ACCEPTABLE; - } - } - } - # Send header, don't cache this page &Apache::loncommon::no_cache($r); $r->send_http_header; @@ -100,20 +68,10 @@ sub real_handler { || ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'externalnototals')); my $notshowTotals= $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'externalnototals'; + my $showCategories= + $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'categories'; - # 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."; - return HTTP_NOT_ACCEPTABLE; - } - # Keep this hash in sync with %statusIconMap in lonnavmaps; they - # should match color/icon - my $res = $navmap->firstResource(); # temp resource to access constants - # Header my $title = "Grading and Statistics";#$showPoints ? "Points Display" : "Completed Problems Display"; my $brcrum = [{href=>"/adm/quickgrades",text => "Points Display"}]; @@ -133,8 +91,21 @@ sub real_handler { $r->print('
'.&mt('This may take a few moments to display.').'
'); $r->rflush(); + my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=&getData($showPoints); + &outputTable($r,$showPoints,$notshowTotals, + $navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted); + return OK; + +} + +sub getData { - # End navmap using boilerplate + my ($showPoints)=@_; + + # Create the nav map + my $navmap = Apache::lonnavmaps::navmap->new(); + + my $res = $navmap->firstResource(); # temp resource to access constants my $iterator = $navmap->getIterator(undef, undef, undef, 1); my $depth = 1; @@ -249,11 +220,17 @@ sub real_handler { } $curRes = $iterator->next(); } + return ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted); +} - $iterator = $navmap->getIterator(undef, undef, undef, 1); - $depth = 1; - $iterator->next(); # ignore first BEGIN_MAP - $curRes = $iterator->next(); +# +# Outputting everything. +# + +sub outputTable { + + my ($r,$showPoints,$notshowTotals, + $navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=@_; my @start = (255, 255, 192); my @end = (0, 192, 0); @@ -264,12 +241,21 @@ sub real_handler { $r->print(&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() .'