Diff for /loncom/interface/statistics/lonproblemstatistics.pm between versions 1.100 and 1.103

version 1.100, 2005/03/08 17:40:39 version 1.103, 2005/03/27 05:08:03
Line 721  sub BuildProblemStatisticsPage { Line 721  sub BuildProblemStatisticsPage {
         return;          return;
     }      }
     if (exists($ENV{'form.Excel'})) {      if (exists($ENV{'form.Excel'})) {
           $r->print('<h4>'.
                     &Apache::lonstatistics::section_and_enrollment_description().
                     '</h4>');
         &Excel_output($r);          &Excel_output($r);
     } else {       } else { 
         $r->print('<input type="submit" name="Excel" value="'.          $r->print('<input type="submit" name="Excel" value="'.
                   &mt('Produce Excel Output').'" />'.'&nbsp;'x5);                    &mt('Produce Excel Output').'" />'.'&nbsp;'x5);
         $r->rflush();          $r->rflush();
           $r->print('<h4>'.
                     &Apache::lonstatistics::section_and_enrollment_description().
                     '</h4>');
         my $count = 0;          my $count = 0;
         foreach my $seq (@sequences) {          foreach my $seq (@sequences) {
             my @resources =               my @resources = 
Line 1264  sub Excel_output { Line 1270  sub Excel_output {
     &compute_all_statistics($r);      &compute_all_statistics($r);
     my $c = $r->connection;      my $c = $r->connection;
     return if ($c->aborted());      return if ($c->aborted());
       #
       my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits();
     ##      ##
     ## Create the excel workbook      ## Create the excel workbook
     my $filename = '/prtspool/'.      my ($excel_workbook,$filename,$format) =
         $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.          &Apache::loncommon::create_workbook($r);
         time.'_'.rand(1000000000).'.xls';      return if (! defined($excel_workbook));
     my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits();  
     #  
     # Create sheet  
     my $excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.$filename);  
     #  
     # Check for errors  
     if (! defined($excel_workbook)) {  
         $r->log_error("Error creating excel spreadsheet $filename: $!");  
         $r->print(&mt("Problems creating new Excel file.  ".  
                   "This error has been logged.  ".  
                   "Please alert your LON-CAPA administrator."));  
         return 0;  
     }  
     #  
     # The excel spreadsheet stores temporary data in files, then put them  
     # together.  If needed we should be able to disable this (memory only).  
     # The temporary directory must be specified before calling 'addworksheet'.  
     # File::Temp is used to determine the temporary directory.  
     $excel_workbook->set_tempdir($Apache::lonnet::tmpdir);  
     #      #
     # Add a worksheet      # Add a worksheet
     my $sheetname = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};      my $sheetname = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
Line 1296  sub Excel_output { Line 1285  sub Excel_output {
     }      }
     my $excel_sheet = $excel_workbook->addworksheet(      my $excel_sheet = $excel_workbook->addworksheet(
         &Apache::loncommon::clean_excel_name($sheetname));          &Apache::loncommon::clean_excel_name($sheetname));
     #  
     my $format = &Apache::loncommon::define_excel_formats($excel_workbook);  
     ##      ##
     ## Begin creating excel sheet      ## Begin creating excel sheet
     ##      ##
Line 1312  sub Excel_output { Line 1299  sub Excel_output {
     # Put a description of the sections listed      # Put a description of the sections listed
     my $sectionstring = '';      my $sectionstring = '';
     $excel_sheet->write($rows_output,$cols_output++,      $excel_sheet->write($rows_output,$cols_output++,
                         &Apache::lonstathelpers::sections_description                          &Apache::lonstatistics::section_and_enrollment_description('plaintext'),
                             (@Apache::lonstatistics::SelectedSections),  
                         $format->{'h3'});                          $format->{'h3'});
     $cols_output += scalar(@Apache::lonstatistics::SelectedSections);      $cols_output += scalar(&Apache::lonstatistics::get_selected_sections());
     #      #
     # Time restrictions      # Time restrictions
     my $time_string;      my $time_string;
Line 1556  sub get_statistics { Line 1542  sub get_statistics {
     my $courseid = $ENV{'request.course.id'};      my $courseid = $ENV{'request.course.id'};
     #      #
     my $data = &Apache::loncoursedata::get_problem_statistics      my $data = &Apache::loncoursedata::get_problem_statistics
                         (\@Apache::lonstatistics::SelectedSections,                          ([&Apache::lonstatistics::get_selected_sections()],
                          $Apache::lonstatistics::enrollment_status,                           $Apache::lonstatistics::enrollment_status,
                          $symb,$part,$courseid,$starttime,$endtime);                           $symb,$part,$courseid,$starttime,$endtime);
     $data->{'symb'}        = $symb;      $data->{'symb'}        = $symb;
Line 1574  sub get_statistics { Line 1560  sub get_statistics {
     #      #
     # Store in metadata if computations were done for all students      # Store in metadata if computations were done for all students
     if ($data->{'num_students'} > 1) {      if ($data->{'num_students'} > 1) {
         my @Sections = @Apache::lonstatistics::SelectedSections;          my @Sections = &Apache::lonstatistics::get_selected_sections();
         my $sections = '"'.join(' ',@Sections).'"';          my $sections = '"'.join(' ',@Sections).'"';
         $sections =~ s/&+/_/g;  # Ensure no special characters          $sections =~ s/&+/_/g;  # Ensure no special characters
         $data->{'sections'}=$sections;          $data->{'sections'}=$sections;
Line 1634  sub compute_discrimination_factor { Line 1620  sub compute_discrimination_factor {
     my $ranking =       my $ranking = 
         &Apache::loncoursedata::rank_students_by_scores_on_resources          &Apache::loncoursedata::rank_students_by_scores_on_resources
         (\@Resources,          (\@Resources,
          \@Apache::lonstatistics::SelectedSections,           [&Apache::lonstatistics::get_selected_sections()],
          $Apache::lonstatistics::enrollment_status,undef,           $Apache::lonstatistics::enrollment_status,undef,
          $starttime,$endtime);           $starttime,$endtime);
     #      #
Line 1699  sub compute_sequence_statistics { Line 1685  sub compute_sequence_statistics {
     # First compute statistics based on student scores      # First compute statistics based on student scores
     my ($smin,$smax,$sMean,$sSTD,$scount,$sMAX) =       my ($smin,$smax,$sMean,$sSTD,$scount,$sMAX) = 
         &Apache::loncoursedata::score_stats          &Apache::loncoursedata::score_stats
                     (\@Apache::lonstatistics::SelectedSections,                      ([&Apache::lonstatistics::get_selected_sections()],
                      $Apache::lonstatistics::enrollment_status,                       $Apache::lonstatistics::enrollment_status,
                      \@Resources,$starttime,$endtime,undef);                       \@Resources,$starttime,$endtime,undef);
     $SeqStat{$symb}->{'title'}  = $seq->compTitle;      $SeqStat{$symb}->{'title'}  = $seq->compTitle;
Line 1714  sub compute_sequence_statistics { Line 1700  sub compute_sequence_statistics {
     # 'correct' is taken to mean       # 'correct' is taken to mean 
     my ($cmin,$cmax,$cMean,$cSTD,$ccount)=      my ($cmin,$cmax,$cMean,$cSTD,$ccount)=
         &Apache::loncoursedata::count_stats          &Apache::loncoursedata::count_stats
         (\@Apache::lonstatistics::SelectedSections,          ([&Apache::lonstatistics::get_selected_sections()],
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          \@Resources,$starttime,$endtime,undef);           \@Resources,$starttime,$endtime,undef);
     my $K = $part_count;      my $K = $part_count;

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


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