Diff for /loncom/interface/statistics/lonproblemstatistics.pm between versions 1.87 and 1.96

version 1.87, 2004/06/04 21:42:18 version 1.96, 2005/01/11 19:45:18
Line 231  my @Fields = ( Line 231  my @Fields = (
              selectable => 'yes',               selectable => 'yes',
              defaultselected => 'yes',               defaultselected => 'yes',
            },             },
              { name   => 'tries_per_correct',
                title  => 'tries/correct',
                align  => 'right',
                color  => '#FFDDDD',
                format => '%4.1f',
                sortable  => 'yes',
                graphable => 'yes',
                long_title => 'Tries per Correct Answer',
                selectable => 'yes',
                defaultselected => 'yes',
              },
            { name   => 'num_wrong',             { name   => 'num_wrong',
              title  => '#Wrng',               title  => '#Wrng',
              align  => 'right',               align  => 'right',
Line 238  my @Fields = ( Line 249  my @Fields = (
              format => '%4.1f',               format => '%4.1f',
              sortable  => 'yes',               sortable  => 'yes',
              graphable => 'yes',               graphable => 'yes',
                long_title => 'Number of students whose final answer is wrong',
                selectable => 'yes',
                defaultselected => 'yes',
              },
              { name   => 'per_wrong',
                title  => '%Wrng',
                align  => 'right',
                color  => '#FFDDDD',
                format => '%4.1f',
                sortable  => 'yes',
                graphable => 'yes',
              long_title => 'Percent of students whose final answer is wrong',               long_title => 'Percent of students whose final answer is wrong',
              selectable => 'yes',               selectable => 'yes',
              defaultselected => 'yes',               defaultselected => 'yes',
Line 263  my @Fields = ( Line 285  my @Fields = (
              graphable => 'yes',               graphable => 'yes',
              long_title => 'Degree of Discrimination',               long_title => 'Degree of Discrimination',
              selectable => 'yes',               selectable => 'yes',
              defaultselected => 'no',               defaultselected => 'yes',
            },             },
 ##   duedate included for research purposes.  Commented out most of the time.  ##   duedate included for research purposes.  Commented out most of the time.
 #           { name => 'duedate',  #           { name => 'duedate',
Line 309  my @Fields = ( Line 331  my @Fields = (
 #             selectable => 'no',  #             selectable => 'no',
 #             defaultselected => 'yes',  #             defaultselected => 'yes',
 #            },  #            },
   ##   maxtries included for research purposes.  Commented out most of the time.
   #           { name => 'maxtries',
   #             title => 'Maxtries',
   #             align => 'left',
   #             color => '#FFFFFF',
   #             sortable => 'no',
   #             graphable => 'no',
   #             long_title => 'Maximum number of tries',
   #             selectable => 'no',
   #             defaultselected => 'yes',
   #            },
   ##   hinttries included for research purposes.  Commented out most of the time.
   #           { name => 'hinttries',
   #             title => 'hinttries',
   #             align => 'left',
   #             color => '#FFFFFF',
   #             sortable => 'no',
   #             graphable => 'no',
   #             long_title => 'Number of tries before a hint appears',
   #             selectable => 'no',
   #             defaultselected => 'yes',
   #            },
   ##   weight included for research purposes.  Commented out most of the time.
   #           { name => 'weight',
   #             title => 'weight',
   #             align => 'right',
   #             color => '#FFFFFF',
   #             sortable => 'no',
   #             graphable => 'no',
   #             long_title => 'Problem weight (for instructor)',
   #             selectable => 'no',
   #             defaultselected => 'yes',
   #            },
 );  );
   
 my @SeqFields = (  my @SeqFields = (
Line 704  sub BuildProblemStatisticsPage { Line 759  sub BuildProblemStatisticsPage {
 sub output_sequence_statistics {  sub output_sequence_statistics {
     my ($r) = @_;      my ($r) = @_;
     my $c=$r->connection();      my $c=$r->connection();
     $r->print('<h2>'.&mt('Sequence Statistics').'</h2>');      $r->print('<h2>'.&mt('Sequence Statistics').
         &Apache::loncommon::help_open_topic('Statistics_Sequence').
         '</h2>');
     $r->print('<table border="0"><tr><td bgcolor="#777777">'."\n".      $r->print('<table border="0"><tr><td bgcolor="#777777">'."\n".
               '<table border="0" cellpadding="3">'."\n".                '<table border="0" cellpadding="3">'."\n".
               '<tr bgcolor="#FFFFE6">');                '<tr bgcolor="#FFFFE6">');
Line 817  sub statistics_html_table_data { Line 874  sub statistics_html_table_data {
         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'}.'">';
         }          }
         if (exists($field->{'format'})) {          if (exists($field->{'format'}) && $data->{$field->{'name'}} !~ /[A-Z]/i) {
             $row .= sprintf($field->{'format'},$data->{$field->{'name'}});              $row .= sprintf($field->{'format'},$data->{$field->{'name'}});
         } else {          } else {
             $row .= $data->{$field->{'name'}};              $row .= $data->{$field->{'name'}};
Line 1387  sub compute_statistics_on_sequence { Line 1444  sub compute_statistics_on_sequence {
     foreach my $res (@{$seq->{'contents'}}) {      foreach my $res (@{$seq->{'contents'}}) {
         next if ($res->{'type'} ne 'assessment');          next if ($res->{'type'} ne 'assessment');
         foreach my $part (@{$res->{'parts'}}) {          foreach my $part (@{$res->{'parts'}}) {
               next if ($res->{'partdata'}->{$part}->{'Survey'});
             #              #
             # This is where all the work happens              # This is where all the work happens
             my $data = &get_statistics($seq,$res,$part,scalar(@StatsArray)+1);              my $data = &get_statistics($seq,$res,$part,scalar(@StatsArray)+1);
Line 1528  sub get_statistics { Line 1586  sub get_statistics {
         &Apache::lonnet::put('nohist_resevaldata',\%storestats,$dom,$user);          &Apache::lonnet::put('nohist_resevaldata',\%storestats,$dom,$user);
     }      }
     #      #
       $data->{'tries_per_correct'} = $data->{'tries'} / 
           ($data->{'num_solved'}+0.1);
       #
     # Get the due date for research purposes (commented out most of the time)      # Get the due date for research purposes (commented out most of the time)
 #    $data->{'duedate'} =   #    $data->{'duedate'} = 
 #        &Apache::lonnet::EXT('resource.'.$part.'.duedate',$symb);  #        &Apache::lonnet::EXT('resource.'.$part.'.duedate',$symb);
 #    $data->{'opendate'} =   #    $data->{'opendate'} = 
 #        &Apache::lonnet::EXT('resource.'.$part.'.opendate',$symb);  #        &Apache::lonnet::EXT('resource.'.$part.'.opendate',$symb);
   #    $data->{'maxtries'} = 
   #        &Apache::lonnet::EXT('resource.'.$part.'.maxtries',$symb);
   #    $data->{'hinttries'} =
   #        &Apache::lonnet::EXT('resource.'.$part.'.hinttries',$symb);
   #    $data->{'weight'} =
   #        &Apache::lonnet::EXT('resource.'.$part.'.weight',$symb);
 #    $data->{'resptypes'} = join(',',@{$resource->{'partdata'}->{$part}->{'ResponseTypes'}});  #    $data->{'resptypes'} = join(',',@{$resource->{'partdata'}->{$part}->{'ResponseTypes'}});
     return $data;      return $data;
 }  }
Line 1578  sub compute_discrimination_factor { Line 1645  sub compute_discrimination_factor {
         map {           map { 
             $_->[&Apache::loncoursedata::RNK_student()];               $_->[&Apache::loncoursedata::RNK_student()]; 
           } @{$ranking}[($num_students-$number_to_grab)..($num_students-1)];            } @{$ranking}[($num_students-$number_to_grab)..($num_students-1)];
       if (! @BottomSet || (@BottomSet == 1 && $BottomSet[0] eq '') ||
           ! @TopSet    || (@TopSet    == 1 && $TopSet[0]    eq '')) {
           return 'nan';
       }
     my ($bottom_sum,$bottom_max) =       my ($bottom_sum,$bottom_max) = 
         &Apache::loncoursedata::get_sum_of_scores($resource,$part,\@BottomSet,          &Apache::loncoursedata::get_sum_of_scores($resource,$part,\@BottomSet,
                                                   undef,$starttime,$endtime);                                                    undef,$starttime,$endtime);

Removed from v.1.87  
changed lines
  Added in v.1.96


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