version 1.11, 2004/06/04 21:42:18
|
version 1.15, 2005/03/01 22:25:59
|
Line 94 sub BuildCorrectProblemsPage {
|
Line 94 sub BuildCorrectProblemsPage {
|
my @ProblemSymbs; |
my @ProblemSymbs; |
my $total_parts = 0; |
my $total_parts = 0; |
my $title = ''; |
my $title = ''; |
if ($Apache::lonstatistics::SelectedMaps[0] ne 'all') { |
my @maps = &Apache::lonstatistics::get_selected_maps('Maps'); |
foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()){ |
my ($navmap,@sequences) = |
|
&Apache::lonstatistics::selected_sequences_with_assessments(); |
|
if ($maps[0] ne 'all') { |
|
foreach my $seq (@sequences) { |
if ($title eq '') { |
if ($title eq '') { |
$title = $seq->{'title'}; |
$title = $seq->compTitle; |
} else { |
} else { |
$title = 'Multiple Sequences'; |
$title = 'Multiple Sequences'; |
} |
} |
foreach my $res (@{$seq->{'contents'}}) { |
my @resources = |
next if ($res->{'type'} ne 'assessment'); |
&Apache::lonstathelpers::get_resources($navmap,$seq); |
foreach my $part (@{$res->{'parts'}}) { |
foreach my $res (@resources) { |
|
foreach my $partid (@{$res->parts}) { |
$total_parts++; |
$total_parts++; |
push(@ProblemSymbs,{symb=>$res->{'symb'}, |
push(@ProblemSymbs,{symb=>$res->symb, |
part=>$part}); |
part=>$partid}); |
} |
} |
} |
} |
} |
} |
|
} else { |
|
$title = "All Problems"; |
|
foreach my $seq (@sequences) { |
|
my @resources = |
|
&Apache::lonstathelpers::get_resources($navmap,$seq); |
|
foreach my $res (@resources) { |
|
$total_parts += scalar(@{$res->parts}); |
|
} |
|
} |
} |
} |
my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); |
my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); |
if (defined($starttime) || defined($endtime)) { |
if (defined($starttime) || defined($endtime)) { |
Line 148 sub AnalyzeScoreData {
|
Line 161 sub AnalyzeScoreData {
|
my ($score_data,$title,$total_parts) = @_; |
my ($score_data,$title,$total_parts) = @_; |
# |
# |
# Basic check first |
# Basic check first |
if (@$score_data < 1) { |
if (ref($score_data) ne 'ARRAY' || @$score_data < 1) { |
return '<h2>There is no data to plot</h2>'; |
return '<h2>'.&mt('There is no data to plot').'</h2>'; |
} |
} |
# |
# |
# Determine which bins to use |
# Determine which bins to use |
my $lowest = $score_data->[0]->[0]; |
my $lowest = $score_data->[0]->[0]; |
$lowest = 0; |
$lowest = 0; |
my $highest = $score_data->[-1]->[0]; |
my $highest = $score_data->[-1]->[0]; |
&Apache::lonnet::logthis('highest = '.$highest); |
|
my $binsize = 1; |
my $binsize = 1; |
if ($highest > 50) { $binsize = 2; } |
if ($highest > 50) { $binsize = 2; } |
if ($highest > 100) { $binsize = 5; } |
if ($highest > 100) { $binsize = 5; } |
Line 186 sub AnalyzeScoreData {
|
Line 198 sub AnalyzeScoreData {
|
$Str .= "</table><br />\n"; |
$Str .= "</table><br />\n"; |
$title = &HTML::Entities::decode($title); |
$title = &HTML::Entities::decode($title); |
$Str = "\n<p>".&Apache::loncommon::DrawBarGraph($title.' N = '.$sum, |
$Str = "\n<p>".&Apache::loncommon::DrawBarGraph($title.' N = '.$sum, |
'Num Correct Problems (max:'.$total_parts.')', |
'Correct Problems (max possible = '.$total_parts.')', |
'Number of students', |
'Number of students', |
$max, |
$max, |
undef, # colors |
undef, # colors |
Line 272 sub CreateInterface {
|
Line 284 sub CreateInterface {
|
## |
## |
## Environment variable initialization |
## Environment variable initialization |
my $Str; |
my $Str; |
$Str .= &Apache::lonhtmlcommon::breadcrumbs |
$Str .= &Apache::lonhtmlcommon::breadcrumbs(undef,'Correct Problems Plot'); |
(undef,'Correct Problems Plot'); |
|
$Str .= '<p>'; |
$Str .= '<p>'; |
# |
# |
$Str .= '<table cellspacing="5">'."\n"; |
$Str .= '<table cellspacing="5">'."\n"; |
Line 293 sub CreateInterface {
|
Line 304 sub CreateInterface {
|
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); |
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); |
$Str .= '</td><td>'."\n"; |
$Str .= '</td><td>'."\n"; |
# |
# |
my $only_seq_with_assessments = sub { |
$Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5); |
my $s=shift; |
|
if ($s->{'num_assess'} < 1) { |
|
return 0; |
|
} else { |
|
return 1; |
|
} |
|
}; |
|
$Str .= &Apache::lonstatistics::MapSelect('Maps','multiple,all',5, |
|
$only_seq_with_assessments); |
|
$Str .= '</td>'; |
$Str .= '</td>'; |
# |
# |
$Str .= '</tr>'."\n"; |
$Str .= '</tr>'."\n"; |