[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(' '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"> </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>';