[LON-CAPA-cvs] cvs: loncom /interface/statistics lonproblemanalysis.pm

matthew lon-capa-cvs@mail.lon-capa.org
Mon, 28 Feb 2005 23:07:33 -0000


matthew		Mon Feb 28 18:07:33 2005 EDT

  Modified files:              
    /loncom/interface/statistics	lonproblemanalysis.pm 
  Log:
  Refactored to use navmaps and modified lonstatistics/lonstathelpers code.
  
  
Index: loncom/interface/statistics/lonproblemanalysis.pm
diff -u loncom/interface/statistics/lonproblemanalysis.pm:1.115 loncom/interface/statistics/lonproblemanalysis.pm:1.116
--- loncom/interface/statistics/lonproblemanalysis.pm:1.115	Tue Feb 22 21:03:42 2005
+++ loncom/interface/statistics/lonproblemanalysis.pm	Mon Feb 28 18:07:32 2005
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonproblemanalysis.pm,v 1.115 2005/02/23 02:03:42 matthew Exp $
+# $Id: lonproblemanalysis.pm,v 1.116 2005/02/28 23:07:32 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -107,7 +107,7 @@
         my $current_problem = &Apache::lonstathelpers::get_target_from_id
             ($ENV{'form.problemchoice'});
         #
-        my ($prev,$curr,$next) = 
+        my ($navmap,$prev,$curr,$next) = 
             &Apache::lonstathelpers::get_prev_curr_next($current_problem,
                                                         $problem_types,
                                                         'response',
@@ -130,14 +130,14 @@
             $r->print('resource is undefined');
         } else {
             my $resource = $current_problem->{'resource'};
-            $r->print('<h1>'.$resource->{'title'}.'</h1>');
-            $r->print('<h3>'.$resource->{'src'}.'</h3>');
+            $r->print('<h1>'.$resource->compTitle.'</h1>');
+            $r->print('<h3>'.$resource->src.'</h3>');
             if ($ENV{'form.show_prob'} eq 'true') {
                 $r->print(&Apache::lonstathelpers::render_resource($resource));
             }
             $r->rflush();
             my %Data = &Apache::lonstathelpers::get_problem_data
-                ($resource->{'src'});
+                ($resource->src);
             my $problem_data = $Data{$current_problem->{'part'}.
                                     '.'.
                                     $current_problem->{'respid'}};
@@ -162,8 +162,7 @@
                   &mt('Analyze Problem').'" />');
         $r->print('&nbsp;'x5);
         $r->print('<h3>'.&mt('Please select a problem to analyze').'</h3>');
-        $r->print(&Apache::lonstathelpers::ProblemSelector
-                  ($problem_types));
+        $r->print(&Apache::lonstathelpers::problem_selector($problem_types));
     }
 }
 
@@ -189,7 +188,7 @@
     my $response_data = &Apache::loncoursedata::get_response_data
         (\@Apache::lonstatistics::SelectedSections,
          $Apache::lonstatistics::enrollment_status,
-         $resource->{'symb'},$respid);
+         $resource->symb,$respid);
     #
     $problem_analysis->{'answercomputed'} = 1;
     if ($problem_analysis->{'answercomputed'}) {
@@ -768,7 +767,7 @@
     my $response_data = &Apache::loncoursedata::get_response_data
         (\@Apache::lonstatistics::SelectedSections,
          $Apache::lonstatistics::enrollment_status,
-         $resource->{'symb'},$respid);
+         $resource->symb,$respid);
     my $correct;   # either a hash reference or a scalar
     if ($problem_analysis->{'answercomputed'} || scalar(@$concepts) > 1) {
         # This takes a while for large classes...
@@ -1171,11 +1170,12 @@
     my ($r,$problem,$problem_data,$Students) = @_;
     my ($resource,$respid) = ($problem->{'resource'},
                               $problem->{'respid'});
+    &Apache::lonnet::logthis('option response analysis on '.$resource->symb);
     # Note: part data is not needed.
     my $PerformanceData = &Apache::loncoursedata::get_response_data
         (\@Apache::lonstatistics::SelectedSections,
          $Apache::lonstatistics::enrollment_status,
-         $resource->{'symb'},$respid);
+         $resource->symb,$respid);
     if (! defined($PerformanceData) || 
         ref($PerformanceData) ne 'ARRAY' ) {
         $r->print('<h2>'.
@@ -1216,6 +1216,7 @@
     if (! defined($Concepts)) {
         $Concepts = [];
     }
+    &Apache::lonnet::logthis('got '.scalar(@$PerformanceData).' data points');
     my %response_data = &OR_analyze_by_tries($r,$PerformanceData,
                                                      $mintries,$maxtries);
     my $analysis = '';
@@ -1272,6 +1273,7 @@
     if (defined($Concepts)) { $num_concepts = scalar(@$Concepts); }
     #
     for (my $try=$mintries;$try<=$maxtries;$try++) {
+        &Apache::lonnet::logthis('try = '.$try);
         if (! defined($response_data{'_total'}->[$try]) ||
             $response_data{'_total'}->[$try] == 0) { 
             if ($try > 1) {
@@ -1305,15 +1307,18 @@
                 ('Correct Concepts','Concept Number','Percent Correct',
                  100,$plotcolors,undef,\@concept_plot_data,{xskip=>1});
         }
+        &Apache::lonnet::logthis('got here a_0');
         #
         # Create Foil Plots
         my $data_count = $response_data{'_total'}->[$try];
         my $correct = $response_data{'_correct'}->[$try];
         my @Datasets;
         foreach my $option ('_correct',@{$ORdata->{'_Options'}}) {
+            &Apache::lonnet::logthis('checking option '.$option);
             next if (! exists($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
         for (my $set =0;$set<=$#Datasets;$set++) {
@@ -1330,6 +1335,7 @@
         }
         #
         # Set up the labels needed for the bar graph
+        &Apache::lonnet::logthis('got here b');
         my @Labels;
         my $idx = 1;
         foreach my $concept (@{$Concepts}) {
@@ -1345,7 +1351,9 @@
         
         #
         #
+        &Apache::lonnet::logthis('got here c');
         next if (! defined($Datasets[0]));
+        &Apache::lonnet::logthis('got here d');
         for (my $i=0; $i< scalar(@{$Datasets[0]});$i++) {
             $Datasets[0]->[$i]=0;
         }
@@ -1354,6 +1362,7 @@
         my $incorrect_graph = &Apache::loncommon::DrawBarGraph
             ('Incorrect Statements','Statement','% Chosen Incorrectly',
              100,$plotcolors,\@Labels,@Datasets,{xskip=>1});
+        &Apache::lonnet::logthis('incorrect graph = '.$incorrect_graph);
         $analysis_html.= 
             '<tr><td colspan="4" align="center">'.
             '<font size="+1">'.
@@ -1814,7 +1823,6 @@
     $Str .= '<tr>';
     $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('Sequences and Folders').'</b></td>';
     $Str .= '<td align="center">&nbsp;</td>';
     $Str .= '</tr>'."\n";
     ##
@@ -1827,17 +1835,6 @@
     $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
     $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>';