--- loncom/interface/lonquickgrades.pm 2020/09/08 04:24:18 1.49.6.6.2.1 +++ loncom/interface/lonquickgrades.pm 2023/09/07 23:53:42 1.49.6.8.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.49.6.6.2.1 2020/09/08 04:24:18 raeburn Exp $ +# $Id: lonquickgrades.pm,v 1.49.6.8.2.3 2023/09/07 23:53:42 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -67,8 +67,9 @@ sub real_handler { if ($env{'request.course.id'}) { my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $clientip = &Apache::lonnet::get_requestor_ip($r); my ($blocked,$blocktext) = - &Apache::loncommon::blocking_status('grades',$cnum,$cdom); + &Apache::loncommon::blocking_status('grades',$clientip,$cnum,$cdom); if ($blocked) { my $checkrole = "cm./$cdom/$cnum"; if ($env{'request.course.sec'} ne '') { @@ -100,23 +101,27 @@ sub real_handler { $r->send_http_header; $r->print(&Apache::loncommon::check_release_result(@reinit)); return OK; - } elsif ($reinitresult eq 'update') { - my $cid = $env{'request.course.id'}; - my $cnum = $env{'course.'.$cid.'.num'}; - my $cdom = $env{'course.'.$cid.'.domain'}; + } + my ($cid,$cnum,$cdom); + if ($reinitresult) { + $cid = $env{'request.course.id'}; + $cnum = $env{'course.'.$cid.'.num'}; + $cdom = $env{'course.'.$cid.'.domain'}; + } + if (($reinitresult eq 'main') || ($reinitresult eq 'both')) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; &startpage($r,$showPoints); my $preamble = '
'. '
'. &mt('Your course session is being updated because of recent changes by course personnel.'). - ' '.&mt('Please be patient.').'
'. + ' '.&mt('Please be patient').'.
'. '
'; my %prog_state = &Apache::lonhtmlcommon::Create_PrgWin($r,undef,$preamble); &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Updating course')); $r->rflush(); my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); - &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished')); + &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Finished!')); &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); my $closure = < @@ -135,9 +140,19 @@ ENDCLOSE $r->print($closure); } } + if (($reinitresult eq 'supp') || ($reinitresult eq 'both')) { + my $possdel; + if ($reinitresult eq 'supp') { + $possdel = 1; + } + my ($supplemental,$refs_updated) = &Apache::loncommon::get_supplemental($cnum,$cdom,'',$possdel); + unless ($refs_updated) { + &Apache::loncommon::set_supp_httprefs($cnum,$cdom,$supplemental); + } + } } - unless ($reinitresult eq 'update') { + unless (($reinitresult eq 'main') || ($reinitresult eq 'both')) { # Send header, don't cache this page &Apache::loncommon::no_cache($r); $r->send_http_header; @@ -273,7 +288,7 @@ sub getData { if ($curRes == $iterator->BEGIN_MAP()) {$depth++;} if ($curRes == $iterator->END_MAP()) { $depth--; } - if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) + if (ref($curRes) && $curRes->is_gradable() && !$curRes->randomout) { # Get number of correct, incorrect parts my $parts = $curRes->parts();