--- loncom/interface/statistics/loncorrectproblemplot.pm 2004/12/10 20:41:39 1.14 +++ loncom/interface/statistics/loncorrectproblemplot.pm 2005/04/07 06:56:24 1.18 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncorrectproblemplot.pm,v 1.14 2004/12/10 20:41:39 matthew Exp $ +# $Id: loncorrectproblemplot.pm,v 1.18 2005/04/07 06:56:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -28,7 +28,7 @@ package Apache::loncorrectproblemplot; use strict; -use Apache::lonnet(); +use Apache::lonnet; use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::loncoursedata(); @@ -90,35 +90,41 @@ sub BuildCorrectProblemsPage { $r->rflush(); # # Determine which problem symbs we are to sum over - if (exists($ENV{'form.CreatePlot'})) { + if (exists($env{'form.CreatePlot'})) { my @ProblemSymbs; - my $total_parts = 0; + my $total_weights = 0; my $title = ''; - if ($Apache::lonstatistics::SelectedMaps[0] ne 'all') { - foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()){ + my @maps = &Apache::lonstatistics::get_selected_maps('Maps'); + my ($navmap,@sequences) = + &Apache::lonstatistics::selected_sequences_with_assessments(); + if ($maps[0] ne 'all') { + foreach my $seq (@sequences) { if ($title eq '') { - $title = $seq->{'title'}; + $title = $seq->compTitle; } else { $title = 'Multiple Sequences'; } - foreach my $res (@{$seq->{'contents'}}) { - next if ($res->{'type'} ne 'assessment'); - foreach my $part (@{$res->{'parts'}}) { - $total_parts++; - push(@ProblemSymbs,{symb=>$res->{'symb'}, - part=>$part}); - } - } } } else { - $title = "All Problems"; - foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()){ - foreach my $res (@{$seq->{'contents'}}) { - next if ($res->{'type'} ne 'assessment'); - $total_parts += scalar(@{$res->{'parts'}}); + $title = 'All Problems'; + } + foreach my $seq (@sequences) { + my @resources = + &Apache::lonstathelpers::get_resources($navmap,$seq); + foreach my $res (@resources) { + foreach my $partid (@{$res->parts}) { + push(@ProblemSymbs,{symb=>$res->symb, + part=>$partid}); + $total_weights += + &Apache::lonnet::EXT('resource.'.$partid.'.weight', + $res->symb, + undef,undef,undef); } } } + $r->print('
'. + &mt('Problem weights do not reflect individual student settings.') + .'
'. 'Range | Count |
---|
".&Apache::loncommon::DrawBarGraph($title.' N = '.$sum,
- 'Correct Problems (max possible = '.$total_parts.')',
- 'Number of students',
- $max,
- undef, # colors
- \@Xdata,
- \@Ydata).
- "\n
\n".$Str;
+ $Str = "\n
".
+ &Apache::loncommon::DrawBarGraph($title.' ('.$sum.' students)',
+ 'Correct Problems (max possible = '.$maximum.')',
+ 'Number of students',
+ $max,undef, # colors
+ \@Xdata,\@Ydata).
+ "\n
\n".$Str;
$Str .= '
'; # $Str .= '
'."\n"; # - my $only_seq_with_assessments = sub { - 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 .= &Apache::lonstatistics::map_select('Maps','multiple,all',5); $Str .= ' | '; # $Str .= ''."\n";