Diff for /loncom/interface/statistics/lonproblemanalysis.pm between versions 1.115 and 1.116

version 1.115, 2005/02/23 02:03:42 version 1.116, 2005/02/28 23:07:32
Line 107  sub BuildProblemAnalysisPage { Line 107  sub BuildProblemAnalysisPage {
         my $current_problem = &Apache::lonstathelpers::get_target_from_id          my $current_problem = &Apache::lonstathelpers::get_target_from_id
             ($ENV{'form.problemchoice'});              ($ENV{'form.problemchoice'});
         #          #
         my ($prev,$curr,$next) =           my ($navmap,$prev,$curr,$next) = 
             &Apache::lonstathelpers::get_prev_curr_next($current_problem,              &Apache::lonstathelpers::get_prev_curr_next($current_problem,
                                                         $problem_types,                                                          $problem_types,
                                                         'response',                                                          'response',
Line 130  sub BuildProblemAnalysisPage { Line 130  sub BuildProblemAnalysisPage {
             $r->print('resource is undefined');              $r->print('resource is undefined');
         } else {          } else {
             my $resource = $current_problem->{'resource'};              my $resource = $current_problem->{'resource'};
             $r->print('<h1>'.$resource->{'title'}.'</h1>');              $r->print('<h1>'.$resource->compTitle.'</h1>');
             $r->print('<h3>'.$resource->{'src'}.'</h3>');              $r->print('<h3>'.$resource->src.'</h3>');
             if ($ENV{'form.show_prob'} eq 'true') {              if ($ENV{'form.show_prob'} eq 'true') {
                 $r->print(&Apache::lonstathelpers::render_resource($resource));                  $r->print(&Apache::lonstathelpers::render_resource($resource));
             }              }
             $r->rflush();              $r->rflush();
             my %Data = &Apache::lonstathelpers::get_problem_data              my %Data = &Apache::lonstathelpers::get_problem_data
                 ($resource->{'src'});                  ($resource->src);
             my $problem_data = $Data{$current_problem->{'part'}.              my $problem_data = $Data{$current_problem->{'part'}.
                                     '.'.                                      '.'.
                                     $current_problem->{'respid'}};                                      $current_problem->{'respid'}};
Line 162  sub BuildProblemAnalysisPage { Line 162  sub BuildProblemAnalysisPage {
                   &mt('Analyze Problem').'" />');                    &mt('Analyze Problem').'" />');
         $r->print('&nbsp;'x5);          $r->print('&nbsp;'x5);
         $r->print('<h3>'.&mt('Please select a problem to analyze').'</h3>');          $r->print('<h3>'.&mt('Please select a problem to analyze').'</h3>');
         $r->print(&Apache::lonstathelpers::ProblemSelector          $r->print(&Apache::lonstathelpers::problem_selector($problem_types));
                   ($problem_types));  
     }      }
 }  }
   
Line 189  sub numerical_response_analysis { Line 188  sub numerical_response_analysis {
     my $response_data = &Apache::loncoursedata::get_response_data      my $response_data = &Apache::loncoursedata::get_response_data
         (\@Apache::lonstatistics::SelectedSections,          (\@Apache::lonstatistics::SelectedSections,
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          $resource->{'symb'},$respid);           $resource->symb,$respid);
     #      #
     $problem_analysis->{'answercomputed'} = 1;      $problem_analysis->{'answercomputed'} = 1;
     if ($problem_analysis->{'answercomputed'}) {      if ($problem_analysis->{'answercomputed'}) {
Line 768  sub radio_response_analysis { Line 767  sub radio_response_analysis {
     my $response_data = &Apache::loncoursedata::get_response_data      my $response_data = &Apache::loncoursedata::get_response_data
         (\@Apache::lonstatistics::SelectedSections,          (\@Apache::lonstatistics::SelectedSections,
          $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
     if ($problem_analysis->{'answercomputed'} || scalar(@$concepts) > 1) {      if ($problem_analysis->{'answercomputed'} || scalar(@$concepts) > 1) {
         # This takes a while for large classes...          # This takes a while for large classes...
Line 1171  sub OptionResponseAnalysis { Line 1170  sub OptionResponseAnalysis {
     my ($r,$problem,$problem_data,$Students) = @_;      my ($r,$problem,$problem_data,$Students) = @_;
     my ($resource,$respid) = ($problem->{'resource'},      my ($resource,$respid) = ($problem->{'resource'},
                               $problem->{'respid'});                                $problem->{'respid'});
       &Apache::lonnet::logthis('option response analysis on '.$resource->symb);
     # 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::SelectedSections,          (\@Apache::lonstatistics::SelectedSections,
          $Apache::lonstatistics::enrollment_status,           $Apache::lonstatistics::enrollment_status,
          $resource->{'symb'},$respid);           $resource->symb,$respid);
     if (! defined($PerformanceData) ||       if (! defined($PerformanceData) || 
         ref($PerformanceData) ne 'ARRAY' ) {          ref($PerformanceData) ne 'ARRAY' ) {
         $r->print('<h2>'.          $r->print('<h2>'.
Line 1216  sub OR_tries_analysis { Line 1216  sub OR_tries_analysis {
     if (! defined($Concepts)) {      if (! defined($Concepts)) {
         $Concepts = [];          $Concepts = [];
     }      }
       &Apache::lonnet::logthis('got '.scalar(@$PerformanceData).' data points');
     my %response_data = &OR_analyze_by_tries($r,$PerformanceData,      my %response_data = &OR_analyze_by_tries($r,$PerformanceData,
                                                      $mintries,$maxtries);                                                       $mintries,$maxtries);
     my $analysis = '';      my $analysis = '';
Line 1272  sub OR_tries_analysis { Line 1273  sub OR_tries_analysis {
     if (defined($Concepts)) { $num_concepts = scalar(@$Concepts); }      if (defined($Concepts)) { $num_concepts = scalar(@$Concepts); }
     #      #
     for (my $try=$mintries;$try<=$maxtries;$try++) {      for (my $try=$mintries;$try<=$maxtries;$try++) {
           &Apache::lonnet::logthis('try = '.$try);
         if (! defined($response_data{'_total'}->[$try]) ||          if (! defined($response_data{'_total'}->[$try]) ||
             $response_data{'_total'}->[$try] == 0) {               $response_data{'_total'}->[$try] == 0) { 
             if ($try > 1) {              if ($try > 1) {
Line 1305  sub OR_tries_analysis { Line 1307  sub OR_tries_analysis {
                 ('Correct Concepts','Concept Number','Percent Correct',                  ('Correct Concepts','Concept Number','Percent Correct',
                  100,$plotcolors,undef,\@concept_plot_data,{xskip=>1});                   100,$plotcolors,undef,\@concept_plot_data,{xskip=>1});
         }          }
           &Apache::lonnet::logthis('got here a_0');
         #          #
         # Create Foil Plots          # Create Foil Plots
         my $data_count = $response_data{'_total'}->[$try];          my $data_count = $response_data{'_total'}->[$try];
         my $correct = $response_data{'_correct'}->[$try];          my $correct = $response_data{'_correct'}->[$try];
         my @Datasets;          my @Datasets;
         foreach my $option ('_correct',@{$ORdata->{'_Options'}}) {          foreach my $option ('_correct',@{$ORdata->{'_Options'}}) {
               &Apache::lonnet::logthis('checking option '.$option);
             next if (! exists($foil_plot[$try]->{$option}));              next if (! exists($foil_plot[$try]->{$option}));
             push(@Datasets,$foil_plot[$try]->{$option});              push(@Datasets,$foil_plot[$try]->{$option});
         }          }
           &Apache::lonnet::logthis('got here a');
         #          #
         # Put a blank in the data set between concepts          # Put a blank in the data set between concepts
         for (my $set =0;$set<=$#Datasets;$set++) {          for (my $set =0;$set<=$#Datasets;$set++) {
Line 1330  sub OR_tries_analysis { Line 1335  sub OR_tries_analysis {
         }          }
         #          #
         # Set up the labels needed for the bar graph          # Set up the labels needed for the bar graph
           &Apache::lonnet::logthis('got here b');
         my @Labels;          my @Labels;
         my $idx = 1;          my $idx = 1;
         foreach my $concept (@{$Concepts}) {          foreach my $concept (@{$Concepts}) {
Line 1345  sub OR_tries_analysis { Line 1351  sub OR_tries_analysis {
                   
         #          #
         #          #
           &Apache::lonnet::logthis('got here c');
         next if (! defined($Datasets[0]));          next if (! defined($Datasets[0]));
           &Apache::lonnet::logthis('got here d');
         for (my $i=0; $i< scalar(@{$Datasets[0]});$i++) {          for (my $i=0; $i< scalar(@{$Datasets[0]});$i++) {
             $Datasets[0]->[$i]=0;              $Datasets[0]->[$i]=0;
         }          }
Line 1354  sub OR_tries_analysis { Line 1362  sub OR_tries_analysis {
         my $incorrect_graph = &Apache::loncommon::DrawBarGraph          my $incorrect_graph = &Apache::loncommon::DrawBarGraph
             ('Incorrect Statements','Statement','% Chosen Incorrectly',              ('Incorrect Statements','Statement','% Chosen Incorrectly',
              100,$plotcolors,\@Labels,@Datasets,{xskip=>1});               100,$plotcolors,\@Labels,@Datasets,{xskip=>1});
           &Apache::lonnet::logthis('incorrect graph = '.$incorrect_graph);
         $analysis_html.=           $analysis_html.= 
             '<tr><td colspan="4" align="center">'.              '<tr><td colspan="4" align="center">'.
             '<font size="+1">'.              '<font size="+1">'.
Line 1814  sub CreateInterface { Line 1823  sub CreateInterface {
     $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('Enrollment Status').'</b></td>';      $Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>';
 #    $Str .= '<td align="center"><b>'.&mt('Sequences and Folders').'</b></td>';  
     $Str .= '<td align="center">&nbsp;</td>';      $Str .= '<td align="center">&nbsp;</td>';
     $Str .= '</tr>'."\n";      $Str .= '</tr>'."\n";
     ##      ##
Line 1827  sub CreateInterface { Line 1835  sub CreateInterface {
     $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);      $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
     $Str .= '</td>';      $Str .= '</td>';
     #      #
 #    $Str .= '<td align="center">';  
     my $only_seq_with_assessments = sub {   
         my $s=shift;  
         if ($s->{'num_assess'} < 1) {   
             return 0;  
         } else {   
             return 1;  
         }  
     };  
     &Apache::lonstatistics::MapSelect('Maps','multiple,all',5,  
                                               $only_seq_with_assessments);  
     ##      ##
     ##      ##
     $Str .= '<td>';      $Str .= '<td>';

Removed from v.1.115  
changed lines
  Added in v.1.116


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