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

version 1.100, 2011/06/03 01:07:22 version 1.105, 2015/03/13 22:06:10
Line 29 Line 29
 package Apache::lonquickgrades;  package Apache::lonquickgrades;
   
 use strict;  use strict;
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http REDIRECT);
 use POSIX;  use POSIX;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::grades;  use Apache::grades;
 use Apache::loncoursedata;  use Apache::loncoursedata;
   use Apache::lonstudentassessment;
   
   use Time::HiRes;
   use Spreadsheet::WriteExcel;
   use Spreadsheet::WriteExcel::Utility();
   #
   # Excel data
   #
   my $excel_sheet;
   my $excel_workbook;
   my $filename;
   my $format;
   my $request_aborted;
   my $header_row;
   my $cols_output;
   my %prog_state;
   
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 58  sub real_handler { Line 75  sub real_handler {
         return OK;          return OK;
     }      }
   
       # 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;
       }
   
     # Send header, don't cache this page      # Send header, don't cache this page
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     $r->send_http_header;      $r->send_http_header;
Line 90  sub real_handler { Line 115  sub real_handler {
     my $udom;      my $udom;
     my $stdid;      my $stdid;
     if ($cangrade) {      if ($cangrade) {
           $r->print("<h2>".&mt("Download Multiple")."</h2>".
                     '<table cellspacing="5">'."\n".
                     '<tr>'.
                     '<td align="center"><b>'.&mt('Sections').'</b>'.
                     &Apache::loncommon::help_open_topic("Chart_Sections").
                     '</td>'.
                     '<td align="center"><b>'.&mt('Groups').'</b>'.
                     '</td>'.
                     '<td align="center"><b>'.&mt('Student Data').'</b>'.
                     &Apache::loncommon::help_open_topic("Chart_Student_Data").
                     '</td>'.
                     '<td align="center"><b>'.&mt('Access Status').'</b>'.
                     &Apache::loncommon::help_open_topic("Chart_Enrollment_Status").
                     '</td>'.
                     '<td align="center"><b>'.&mt('Output Format').'</b>'.
                     &Apache::loncommon::help_open_topic("Chart_Output_Formats").
                     '</td><td>&nbsp;</td></tr>'."\n".
                     '<tr><td align="center">'."\n".
                     &Apache::lonstatistics::SectionSelect('Section','multiple',5).
                     '</td><td align="center">'.
                     &Apache::lonstatistics::GroupSelect('Group','multiple',5).
                     '</td><td align="center">'.
                     &Apache::lonstatistics::StudentDataSelect('StudentData','multiple',5,undef).
                     '</td><td>'."\n".
                     &Apache::lonhtmlcommon::StatusOptions(undef,undef,5).
                     '</td><td>'."\n".
                     &Apache::lonstudentassessment::CreateAndParseOutputSelector().
                     '</td><td>'.
                     '<input type="submit" name="download" value="'.&mt('Display/Download Multiple Students').'" />'.
                     '</td></tr>'."\n".
                     '</table>'."\n"
                    );
           $r->print("<hr /><h2>".&mt("Display Individual")."</h2>");
         if ($env{'form.uname'}) { $uname=$env{'form.uname'}; }          if ($env{'form.uname'}) { $uname=$env{'form.uname'}; }
         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'}; }
Line 107  sub real_handler { Line 165  sub real_handler {
         $r->print(&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]'          $r->print(&mt('For User [_1] or Student/Employee ID [_2] at Domain [_3]'
                  ,'<input type="text" value="'.$uname.'" size="12" name="uname" />'                   ,'<input type="text" value="'.$uname.'" size="12" name="uname" />'
                  ,'<input type="text" value="'.$stdid.'" size="12" name="id" /> '                   ,'<input type="text" value="'.$stdid.'" size="12" name="id" /> '
                  ,$chooseopt).'<br />'.                   ,$chooseopt).
                  '<input type="submit" name="display" value="'.&mt('Update Display').'" /></p>');                   '&nbsp;&nbsp;<input type="submit" name="display" value="'.&mt('Display Individual Student').'" /></p>');
         if (($uname) && ($udom)) {          if (($uname) && ($udom)) {
             $r->print('<p>'.&mt('Full Name: [_1]',&Apache::loncommon::plainname($uname,$udom)).'</p>');              $r->print('<p>'.&mt('Full Name: [_1]',&Apache::loncommon::plainname($uname,$udom)).'</p>');
         }          }
Line 211  sub startGradeScreen { Line 269  sub startGradeScreen {
        if ($env{'form.symb'}) {         if ($env{'form.symb'}) {
           $r->print("\n".'<li'.($mode eq 'probgrading'?' class="active"':'').'><a href="/adm/grades?symb='.            $r->print("\n".'<li'.($mode eq 'probgrading'?' class="active"':'').'><a href="/adm/grades?symb='.
                                               &Apache::lonhtmlcommon::entity_encode($env{'form.symb'}).                                                &Apache::lonhtmlcommon::entity_encode($env{'form.symb'}).
                                               '&command=gradingmenu"><b>&nbsp;&nbsp;&nbsp;&nbsp;'.                                                '&amp;command=gradingmenu"><b>&nbsp;&nbsp;&nbsp;&nbsp;'.
                                               &mt('Problem Grading').'&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>');                                                &mt('Problem Grading').'&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>');
   
        }         }
Line 225  sub endGradeScreen { Line 283  sub endGradeScreen {
    $r->print('</div></div></div>'.&Apache::loncommon::end_page());     $r->print('</div></div></div>'.&Apache::loncommon::end_page());
 }  }
   
   # -----------
   
   
   sub excel_cleanup {
       undef ($excel_sheet);
       undef ($excel_workbook);
       undef ($filename);
       undef ($format);
   }
   
   
   sub excel_initialize {
       my ($r) = @_;
   
       &excel_cleanup();
   
       # Create sheet
       ($excel_workbook,$filename,$format)=
           &Apache::loncommon::create_workbook($r);
       return if (! defined($excel_workbook));
      #
      # Add a worksheet
       my $sheetname = $env{'course.'.$env{'request.course.id'}.'.description'};
       $sheetname = &Apache::loncommon::clean_excel_name($sheetname);
       $excel_sheet = $excel_workbook->addworksheet($sheetname);
      #
      # Put the course description in the header
       $excel_sheet->write($header_row,$cols_output++,
                      $env{'course.'.$env{'request.course.id'}.'.description'},
                           $format->{'h1'});
   } 
   
   sub excel_finish {
       my ($r) = @_;
       if ($request_aborted || ! defined($excel_sheet)) {
           &excel_cleanup();
           return;
       }
       #
       # Write the excel file
       $excel_workbook->close();
       #
       # Close the progress window
       &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
       #
       # Tell the user where to get their excel file
       $r->print('<br />'.
                 '<a href="'.$filename.'">'.&mt('Your Excel spreadsheet').'</a>'."\n");
       $r->rflush();
       &excel_cleanup();
       return;
   }
   
   
   #
   # CSV data
   #
   # -----------
   
   #
   # Go through the complete course and collect data
   #
   
 sub getData {  sub getData {
   

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


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