Diff for /loncom/interface/statistics/lonproblemanalysis.pm between versions 1.124 and 1.127

version 1.124, 2006/02/04 19:06:53 version 1.127, 2006/08/17 21:19:47
Line 38  use Apache::lonstudentsubmissions(); Line 38  use Apache::lonstudentsubmissions();
 use HTML::Entities();  use HTML::Entities();
 use Time::Local();  use Time::Local();
 use capa;  use capa;
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
     
   
 my $plotcolors = ['#33ff00',   my $plotcolors = ['#33ff00', 
                   '#0033cc', '#990000', '#aaaa66', '#663399', '#ff9933',                    '#0033cc', '#990000', '#aaaa66', '#663399', '#ff9933',
Line 59  sub BuildProblemAnalysisPage { Line 62  sub BuildProblemAnalysisPage {
     #      #
     my %Saveable_Parameters = ('Status' => 'scalar',      my %Saveable_Parameters = ('Status' => 'scalar',
                                'Section' => 'array',                                 'Section' => 'array',
                                  'Groups' => 'array',
                                'NumPlots' => 'scalar',                                 'NumPlots' => 'scalar',
                                'AnalyzeOver' => 'scalar',                                 'AnalyzeOver' => 'scalar',
                                );                                 );
Line 74  sub BuildProblemAnalysisPage { Line 78  sub BuildProblemAnalysisPage {
     my @Students = @Apache::lonstatistics::Students;      my @Students = @Apache::lonstatistics::Students;
     #      #
     if (@Students < 1 && exists($env{'form.firstrun'})) {      if (@Students < 1 && exists($env{'form.firstrun'})) {
         $r->print('<h2>There are no students in the sections selected</h2>');          $r->print('<h2>There are no students in the sections/groups selected</h2>');
     }      }
     #      #
     my @CacheButtonHTML =       my @CacheButtonHTML = 
Line 194  sub numerical_response_analysis { Line 198  sub numerical_response_analysis {
     # Gather student data      # Gather student data
     my $response_data = &Apache::loncoursedata::get_response_data      my $response_data = &Apache::loncoursedata::get_response_data
         ([&Apache::lonstatistics::get_selected_sections()],          ([&Apache::lonstatistics::get_selected_sections()],
            [&Apache::lonstatistics::get_selected_groups()],
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          $resource->symb,$respid);           $resource->symb,$respid);
     #      #
Line 782  sub radio_response_analysis { Line 787  sub radio_response_analysis {
     # Gather student data      # Gather student data
     my $response_data = &Apache::loncoursedata::get_response_data      my $response_data = &Apache::loncoursedata::get_response_data
         ([&Apache::lonstatistics::get_selected_sections()],          ([&Apache::lonstatistics::get_selected_sections()],
            [&Apache::lonstatistics::get_selected_groups()],
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          $resource->symb,$respid);           $resource->symb,$respid);
     my $correct;   # either a hash reference or a scalar      my $correct;   # either a hash reference or a scalar
Line 794  sub radio_response_analysis { Line 800  sub radio_response_analysis {
             my ($idx,@remainder) = split('&',$student->{'answer'});              my ($idx,@remainder) = split('&',$student->{'answer'});
             my ($answer) = ($remainder[$idx]=~/^(.*)=([^=]*)$/);              my ($answer) = ($remainder[$idx]=~/^(.*)=([^=]*)$/);
             $correct->{$student->{'username'}.':'.$student->{'domain'}}=              $correct->{$student->{'username'}.':'.$student->{'domain'}}=
                 &Apache::lonnet::unescape($answer);                  &unescape($answer);
         }          }
     } else {      } else {
         foreach my $foil (keys(%$foildata)) {          foreach my $foil (keys(%$foildata)) {
Line 1187  sub OptionResponseAnalysis { Line 1193  sub OptionResponseAnalysis {
     # Note: part data is not needed.      # Note: part data is not needed.
     my $PerformanceData = &Apache::loncoursedata::get_response_data      my $PerformanceData = &Apache::loncoursedata::get_response_data
         ([&Apache::lonstatistics::get_selected_sections()],          ([&Apache::lonstatistics::get_selected_sections()],
            [&Apache::lonstatistics::get_selected_groups()],
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          $resource->symb,$respid);           $resource->symb,$respid);
     if (! defined($PerformanceData) ||       if (! defined($PerformanceData) || 
Line 1823  sub CreateInterface { Line 1830  sub CreateInterface {
     ##      ##
     ## Build the menu      ## Build the menu
     my $Str = '';      my $Str = '';
     $Str .= &Apache::lonhtmlcommon::breadcrumbs      $Str .= &Apache::lonhtmlcommon::breadcrumbs('Detailed Problem Analysis');
         (undef,'Detailed Problem Analysis');  
     $Str .= '<table cellspacing="5">'."\n";      $Str .= '<table cellspacing="5">'."\n";
     $Str .= '<tr>';      $Str .= '<tr>';
     $Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>';      $Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>';
       $Str .= '<td align="center"><b>'.&mt('Groups').'</b></td>';
     $Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>';      $Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>';
     $Str .= '<td align="center">&nbsp;</td>';      $Str .= '<td align="center">&nbsp;</td>';
     $Str .= '</tr>'."\n";      $Str .= '</tr>'."\n";
Line 1837  sub CreateInterface { Line 1844  sub CreateInterface {
     $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);      $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
     $Str .= '</td>';      $Str .= '</td>';
     #      #
       $Str .= '<td align="center">'."\n";
       $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5);
       $Str .= '</td>';
       #
     $Str .= '<td align="center">';      $Str .= '<td align="center">';
     $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);      $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
     $Str .= '</td>';      $Str .= '</td>';
Line 1929  sub hashify_attempt { Line 1940  sub hashify_attempt {
     my %attempt;      my %attempt;
     $attempt{'student'}    = $row->[&Apache::loncoursedata::RD_sname()];      $attempt{'student'}    = $row->[&Apache::loncoursedata::RD_sname()];
     $attempt{'tries'}      = $row->[&Apache::loncoursedata::RD_tries()];      $attempt{'tries'}      = $row->[&Apache::loncoursedata::RD_tries()];
     $attempt{'submission'} = &Apache::lonnet::unescape($row->[&Apache::loncoursedata::RD_submission()]);      $attempt{'submission'} = &unescape($row->[&Apache::loncoursedata::RD_submission()]);
     $attempt{'award'}      = $row->[&Apache::loncoursedata::RD_awarddetail()];      $attempt{'award'}      = $row->[&Apache::loncoursedata::RD_awarddetail()];
     $attempt{'timestamp'}  = $row->[&Apache::loncoursedata::RD_timestamp()];      $attempt{'timestamp'}  = $row->[&Apache::loncoursedata::RD_timestamp()];
     return %attempt;      return %attempt;
Line 1953  sub Process_OR_Row { Line 1964  sub Process_OR_Row {
     my @Foilsubs   = split('&',$submission);      my @Foilsubs   = split('&',$submission);
     for (my $j=0;$j<=$#Foilgrades;$j++) {      for (my $j=0;$j<=$#Foilgrades;$j++) {
         my ($foilid,$correct)  = split('=',$Foilgrades[$j]);          my ($foilid,$correct)  = split('=',$Foilgrades[$j]);
         $foilid = &Apache::lonnet::unescape($foilid);          $foilid = &unescape($foilid);
         my (undef,$submission) = split('=',$Foilsubs[$j]);          my (undef,$submission) = split('=',$Foilsubs[$j]);
         if ($correct) {          if ($correct) {
             $RowData{$foilid}->{'_correct'}++;              $RowData{$foilid}->{'_correct'}++;
         } else {          } else {
             $submission = &Apache::lonnet::unescape($submission);              $submission = &unescape($submission);
             $RowData{$foilid}->{$submission}++;              $RowData{$foilid}->{$submission}++;
         }          }
         $RowData{$foilid}->{'_total'}++;          $RowData{$foilid}->{'_total'}++;

Removed from v.1.124  
changed lines
  Added in v.1.127


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