Diff for /loncom/interface/statistics/lonproblemstatistics.pm between versions 1.51 and 1.56

version 1.51, 2003/06/02 13:58:43 version 1.56, 2003/08/27 21:33:33
Line 75  my @Fields = ( Line 75  my @Fields = (
            { name   => 'part',              { name   => 'part', 
              title  => 'Part',               title  => 'Part',
              align  => 'left',               align  => 'left',
              color  => '#FFFFE6' },               color  => '#FFFFE6',
                },
            { name   => 'num_students',             { name   => 'num_students',
              title  => '#Stdnts',               title  => '#Stdnts',
              align  => 'right',               align  => 'right',
Line 131  my @Fields = ( Line 132  my @Fields = (
              format => '%5.2f',               format => '%5.2f',
              sortable  => 'yes',               sortable  => 'yes',
              graphable => 'yes',               graphable => 'yes',
              long_title => 'Degree of Difficulty' },               long_title => 'Degree of Difficulty'.
                              '[ 1 - ((#YES+#yes) / Tries) ]'},
            { name   => 'num_solved',             { name   => 'num_solved',
              title  => '#YES',               title  => '#YES',
              align  => 'right',               align  => 'right',
Line 155  my @Fields = ( Line 157  my @Fields = (
              format => '%4.1f',               format => '%4.1f',
              sortable  => 'yes',               sortable  => 'yes',
              graphable => 'yes',               graphable => 'yes',
              long_title => 'Percent Wrong' },               long_title => 'Percent of students whose final answer is wrong' },
 );  );
   
 ###############################################  ###############################################
Line 202  sub CreateInterface { Line 204  sub CreateInterface {
     $Str .= &CreateAndParseOutputSelector();      $Str .= &CreateAndParseOutputSelector();
     $Str .= '</td></tr>'."\n";      $Str .= '</td></tr>'."\n";
     $Str .= '</table>'."\n";      $Str .= '</table>'."\n";
       $Str .= '<input type="submit" value="Generate Statistics" />';
       $Str .= '&nbsp;'x5;
       $Str .= '<input type="submit" name="ClearCache" value="Clear Caches" />';
       $Str .= '&nbsp;'x5;
     return $Str;      return $Str;
 }  }
   
Line 304  sub CreateAndParseOutputSelector { Line 310  sub CreateAndParseOutputSelector {
   
 =pod   =pod 
   
 =item &Gather_Student_Data()  
   
 Ensures all student data is up to date.  
   
 =cut  
   
 ###############################################  
 ###############################################  
 sub Gather_Student_Data {  
     my ($r) = @_;  
     my $c = $r->connection();  
     #  
     my @Sequences = &Apache::lonstatistics::Sequences_with_Assess();  
     #  
     my @Students = @Apache::lonstatistics::Students;  
     #  
     # Open the progress window  
     my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin  
         ($r,'Statistics Compilation Status',  
          'Statistics Compilation Progress', scalar(@Students));  
     #  
     while (my $student = shift @Students) {  
         return if ($c->aborted());  
         my ($status,undef) = &Apache::loncoursedata::ensure_current_data  
             ($student->{'username'},$student->{'domain'},  
              $ENV{'request.course.id'});  
         &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,  
                                                  'last student');  
     }  
     &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);  
     $r->rflush();  
 }  
   
 ###############################################  
 ###############################################  
   
 =pod   
   
 =item &BuildProblemStatisticsPage()  =item &BuildProblemStatisticsPage()
   
 Main interface to problem statistics.  Main interface to problem statistics.
Line 362  sub BuildProblemStatisticsPage { Line 330  sub BuildProblemStatisticsPage {
               '" />');                '" />');
     $r->print('<input type="hidden" name="plot" value="" />');      $r->print('<input type="hidden" name="plot" value="" />');
     if (! exists($ENV{'form.statsfirstcall'})) {      if (! exists($ENV{'form.statsfirstcall'})) {
         $r->print(<<ENDMSG);  
 <p>  
 <font size="+1">  
 Please make your selections in the boxes above and hit   
 the button marked &quot;Update&nbsp;Display&quot;.  
 </font>  
 </p>  
 ENDMSG  
         return;          return;
     }      }
     #      #
     &Gather_Student_Data($r);      &Apache::lonstatistics::Gather_Student_Data($r);
     #      #
     #      #
     if ($output_mode eq 'html') {      if ($output_mode eq 'html') {
Line 649  sub output_excel { Line 609  sub output_excel {
     $rows_output++;       $rows_output++; 
     $cols_output=0;      $cols_output=0;
     #      #
     # Add the headers      # Long Headersheaders
       foreach my $field (@Fields) {
           next if ($field->{'name'} eq 'problem_num');
           if (exists($field->{'long_title'})) {
               $excel_sheet->write($rows_output,$cols_output++,
                                   $field->{'long_title'});
           } else {
               $excel_sheet->write($rows_output,$cols_output++,'');
           }
       }
       $rows_output++;
       $cols_output=0;
       # Brief headers
     foreach my $field (@Fields) {      foreach my $field (@Fields) {
         next if ($field->{'name'} eq 'problem_num');          next if ($field->{'name'} eq 'problem_num');
         $excel_sheet->write($rows_output,$cols_output++,$field->{'title'});          $excel_sheet->write($rows_output,$cols_output++,$field->{'title'});
Line 714  sub statistics_html_table_data { Line 686  sub statistics_html_table_data {
             }              }
         $row .= '>';          $row .= '>';
         if (exists($field->{'special'}) && $field->{'special'} eq 'link') {          if (exists($field->{'special'}) && $field->{'special'} eq 'link') {
             $row .= '<a href="'.$data->{$field->{'name'}.'.link'}.              $row .= '<a href="'.$data->{$field->{'name'}.'.link'}.'">';
                 ' target="_blank">';  
         }          }
         if (exists($field->{'format'})) {          if (exists($field->{'format'})) {
             $row .= sprintf($field->{'format'},$data->{$field->{'name'}});              $row .= sprintf($field->{'format'},$data->{$field->{'name'}});
Line 786  sub plot_statistics { Line 757  sub plot_statistics {
         }          }
     }      }
     return if (! defined($sortfield) || $sortfield eq '');      return if (! defined($sortfield) || $sortfield eq '');
     &Apache::lonnet::logthis('data field = '.$datafield);  
     #      #
     my $Max = 0;      my $Max = 0;
     my $problem_num = 0;      my $problem_num = 0;
Line 890  sub get_statistics { Line 860  sub get_statistics {
     $data->{'problem_num'} = $problem_num;      $data->{'problem_num'} = $problem_num;
     $data->{'container'}   = $sequence->{'title'};      $data->{'container'}   = $sequence->{'title'};
     $data->{'title'}       = $resource->{'title'};      $data->{'title'}       = $resource->{'title'};
     $data->{'title.link'}  = $resource->{'src'};      $data->{'title.link'}  = $resource->{'src'}.'?symb='.
           &Apache::lonnet::escape($resource->{'symb'});
     #      #
     return $data;      return $data;
 }  }

Removed from v.1.51  
changed lines
  Added in v.1.56


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