--- loncom/interface/statistics/lonproblemanalysis.pm 2005/02/23 02:03:42 1.115 +++ loncom/interface/statistics/lonproblemanalysis.pm 2005/02/28 23:07:32 1.116 @@ -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 @@ sub BuildProblemAnalysisPage { 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 @@ sub BuildProblemAnalysisPage { $r->print('resource is undefined'); } else { my $resource = $current_problem->{'resource'}; - $r->print('

'.$resource->{'title'}.'

'); - $r->print('

'.$resource->{'src'}.'

'); + $r->print('

'.$resource->compTitle.'

'); + $r->print('

'.$resource->src.'

'); 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 @@ sub BuildProblemAnalysisPage { &mt('Analyze Problem').'" />'); $r->print(' 'x5); $r->print('

'.&mt('Please select a problem to analyze').'

'); - $r->print(&Apache::lonstathelpers::ProblemSelector - ($problem_types)); + $r->print(&Apache::lonstathelpers::problem_selector($problem_types)); } } @@ -189,7 +188,7 @@ sub numerical_response_analysis { 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 @@ sub radio_response_analysis { 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 @@ sub OptionResponseAnalysis { 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('

'. @@ -1216,6 +1216,7 @@ sub OR_tries_analysis { 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 @@ sub OR_tries_analysis { 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 @@ sub OR_tries_analysis { ('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 @@ sub OR_tries_analysis { } # # 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 @@ sub OR_tries_analysis { # # + &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 @@ sub OR_tries_analysis { 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.= ''. ''. @@ -1814,7 +1823,6 @@ sub CreateInterface { $Str .= ''; $Str .= ''.&mt('Sections').''; $Str .= ''.&mt('Enrollment Status').''; -# $Str .= ''.&mt('Sequences and Folders').''; $Str .= ' '; $Str .= ''."\n"; ## @@ -1827,17 +1835,6 @@ sub CreateInterface { $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); $Str .= ''; # -# $Str .= ''; - 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 .= '';