Diff for /loncom/interface/lonquickgrades.pm between versions 1.105 and 1.114

version 1.105, 2015/03/13 22:06:10 version 1.114, 2018/11/13 03:59:00
Line 37  use Apache::lonnet; Line 37  use Apache::lonnet;
 use Apache::grades;  use Apache::grades;
 use Apache::loncoursedata;  use Apache::loncoursedata;
 use Apache::lonstudentassessment;  use Apache::lonstudentassessment;
   use Apache::lonuserstate;
   
 use Time::HiRes;  use Time::HiRes;
 use Spreadsheet::WriteExcel;  use Spreadsheet::WriteExcel;
Line 75  sub real_handler { Line 76  sub real_handler {
         return OK;          return OK;
     }      }
   
     # Check for critical messages and redirect if present.      my $cangrade=&Apache::lonnet::allowed('mgr');
     my ($redirect,$url) = &Apache::loncommon::critical_redirect(300);  
     if ($redirect) {  
         &Apache::loncommon::content_type($r,'text/html');  
         $r->header_out(Location => $url);  
         return REDIRECT;  
     }  
   
     # Send header, don't cache this page  
     &Apache::loncommon::no_cache($r);  
     $r->send_http_header;  
   
     my $showPoints =      my $showPoints =
         (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard')          (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard')
       || ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'categories'));        || ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'categories'));
     my $notshowSPRSlink =  
         (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'external')  
       || ($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';  
   
       my $reinitresult;
   
     my $title = "Grading and Statistics";#$showPoints ? "Points Display" : "Completed Problems Display";      unless ($cangrade) {
     my $brcrum = [{href=>"/adm/quickgrades",text => "Points Display"}];          # Check for critical messages and redirect if present.
     $r->print(&Apache::loncommon::start_page($title,undef,          my ($redirect,$url) = &Apache::loncommon::critical_redirect(300,'grades');
                                             {'bread_crumbs' => $brcrum})          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');
           ($reinitresult,my @reinit) = &Apache::loncommon::needs_coursereinit($loncaparev);
   
           if ($reinitresult eq 'switch') {
               &Apache::loncommon::content_type($r,'text/html');
               $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'};
               &Apache::loncommon::content_type($r,'text/html');
               $r->send_http_header;
               &startpage($r,$showPoints);
               my $preamble = '<div id="LC_update_'.$cid.'" class="LC_info">'.
                              '<br />'.
                              &mt('Your course session is being updated because of recent changes by course personnel.').
                              ' '.&mt('Please be patient.').'<br /></div>'.
                              '<div style="padding:0;clear:both;margin:0;border:0"></div>';
               %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::Close_PrgWin($r,\%prog_state);
               my $closure = <<ENDCLOSE;
   <script type="text/javascript">
   // <![CDATA[
   \$("#LC_update_$cid").hide('slow');
   // ]]>
   </script>
   ENDCLOSE
               if ($ferr) {
                   $r->print($closure.&Apache::loncommon::end_page());
                   my $requrl = $r->uri;
                   $env{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
                   $env{'user.reinit'} = 1;
                   return HTTP_NOT_ACCEPTABLE;
               } else {
                  $r->print($closure);
               }
           } elsif ((&Apache::loncommon::course_type() eq 'Placement') &&
                    (!$env{'request.role.adv'})) {
               my $furl = &Apache::lonpageflip::first_accessible_resource();
               &Apache::loncommon::content_type($r,'text/html');
               $r->header_out(Location => $furl);
               return REDIRECT;
           }
       }
   
       unless ($reinitresult eq 'update') {
           # Send header, don't cache this page
           &Apache::loncommon::no_cache($r);
           $r->send_http_header;
           &startpage($r,$showPoints);
       }
       $r->rflush();
   
     &startGradeScreen($r,'quick');      &startGradeScreen($r,'quick');
   
     my $cangrade=&Apache::lonnet::allowed('mgr');  
 #  #
 # Pick student  # Pick student
 #  #
Line 152  sub real_handler { Line 198  sub real_handler {
         if ($env{'form.udom'}) { $udom=$env{'form.udom'}; }          if ($env{'form.udom'}) { $udom=$env{'form.udom'}; }
         if ($env{'form.id'}) { $stdid=$env{'form.id'}; }          if ($env{'form.id'}) { $stdid=$env{'form.id'}; }
         if (($stdid) && ($udom)) {          if (($stdid) && ($udom)) {
             $uname=(&Apache::lonnet::idget($udom,$stdid))[1];              $uname=(&Apache::lonnet::idget($udom,[$stdid],'ids'))[1];
         }          }
         if (($stdid) && (!$uname)) {          if (($stdid) && (!$uname)) {
             $r->print('<p><span class="LC_warning">'.&mt("Unknown Student/Employee ID: [_1]",$stdid).'</span></p>');              $r->print('<p><span class="LC_warning">'.&mt("Unknown Student/Employee ID: [_1]",$stdid).'</span></p>');
Line 173  sub real_handler { Line 219  sub real_handler {
     }      }
     $r->rflush();      $r->rflush();
   
       my $notshowSPRSlink =
           (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'external')
         || ($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';
   
     my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=      my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=
        &getData($showPoints,$uname,$udom);         &getData($showPoints,$uname,$udom);
   
Line 217  sub getAllStudentData { Line 271  sub getAllStudentData {
     }      }
 }  }
   
   sub startpage {
       my ($r,$showPoints) = @_;
       my $title = "Grading and Statistics";#$showPoints ? "Points Display" : "Completed Problems Display";
       my $brcrum = [{href=>"/adm/quickgrades",text => "Points Display"}];
       $r->print(&Apache::loncommon::start_page($title,undef,
                                               {'bread_crumbs' => $brcrum})
                );
   }
   
 sub startGradeScreen {  sub startGradeScreen {
     my ($r,$mode)=@_;      my ($r,$mode)=@_;
Line 260  sub startGradeScreen { Line 322  sub startGradeScreen {
                                                                  &mt('Statistics and Reports').'</b></a></li>');                                                                   &mt('Statistics and Reports').'</b></a></li>');
   
        $r->print("\n".'<li'.($mode eq 'chart'?' class="active"':'').'><a href="/adm/statistics?reportSelected=student_assessment"><b>'.         $r->print("\n".'<li'.($mode eq 'chart'?' class="active"':'').'><a href="/adm/statistics?reportSelected=student_assessment"><b>'.
                                                                  &mt('Assessment Overview Chart').'</b></a></li>');                                                                   &mt('Assessment Chart').'</b></a></li>');
   
     }      }
     if ($allowed_to_edit) {      if ($allowed_to_edit) {
Line 382  sub getData { Line 444  sub getData {
         if ($curRes == $iterator->BEGIN_MAP()) {$depth++;}          if ($curRes == $iterator->BEGIN_MAP()) {$depth++;}
         if ($curRes == $iterator->END_MAP()) { $depth--; }          if ($curRes == $iterator->END_MAP()) { $depth--; }
   
         if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout)          if (ref($curRes) && $curRes->is_gradable() && !$curRes->randomout && 
               ($curRes->deeplink ne 'absent'))
         {          {
             # Get number of correct, incorrect parts              # Get number of correct, incorrect parts
             my $parts = $curRes->parts();              my $parts = $curRes->parts();

Removed from v.1.105  
changed lines
  Added in v.1.114


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>