--- loncom/interface/statistics/loncorrectproblemplot.pm 2004/12/10 20:41:39 1.14 +++ loncom/interface/statistics/loncorrectproblemplot.pm 2012/05/12 03:07:46 1.28.2.1 @@ -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.28.2.1 2012/05/12 03:07:46 raeburn 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(); @@ -59,13 +59,16 @@ sub BuildCorrectProblemsPage { my ($r,$c)=@_; # my %Saveable_Parameters = ('Status' => 'scalar', - 'Section' => 'array'); + 'Section' => 'array', + 'Groups' => 'array'); &Apache::loncommon::store_course_settings('correct_problems_plot', \%Saveable_Parameters); &Apache::loncommon::restore_course_settings('correct_problems_plot', \%Saveable_Parameters); # &Apache::lonstatistics::PrepareClasslist(); + + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Correct Problems Plot')); # $r->print(&CreateInterface()); # @@ -73,7 +76,7 @@ sub BuildCorrectProblemsPage { # if (@Students < 1) { $r->print('
'. + &Apache::lonstatistics::section_and_enrollment_description(). + '
'); my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); if (defined($starttime) || defined($endtime)) { # Inform the user what the time limits on the data are. @@ -126,14 +135,16 @@ sub BuildCorrectProblemsPage { &Apache::lonlocal::locallocaltime($starttime), &Apache::lonlocal::locallocaltime($endtime))); } + &Apache::loncoursedata::populate_weight_table(); my $score_data = &Apache::loncoursedata::get_student_scores - (\@Apache::lonstatistics::SelectedSections, + ([&Apache::lonstatistics::get_selected_sections()], + [&Apache::lonstatistics::get_selected_groups()], \@ProblemSymbs, $Apache::lonstatistics::enrollment_status,undef, $starttime,$endtime); - $r->print(&AnalyzeScoreData($score_data,$title,$total_parts)); + $r->print(&AnalyzeScoreData($score_data,$title,$total_weights)); } else { - $r->print(''.&mt('Make a sequence selection from the "Sequences and Folders" menu and hit "Create Plot" to begin').'
'); } return; } @@ -153,11 +164,11 @@ return html with a plot of the data and ######################################################### ######################################################### sub AnalyzeScoreData { - my ($score_data,$title,$total_parts) = @_; + my ($score_data,$title,$maximum) = @_; # # Basic check first if (ref($score_data) ne 'ARRAY' || @$score_data < 1) { - return ''.&mt('There is no data to plot').'
'; } # # Determine which bins to use @@ -176,7 +187,13 @@ sub AnalyzeScoreData { my @Bins = &bin_data($score_data,$binsize,$lowest,$highest); my @Xdata; my @Ydata; my $max; my $Str = - 'Range | Count | '.&mt('Range').' | '.&mt('Count').' | '. + &Apache::loncommon::end_data_table_header_row(); my $sum = 0; while (my $bin = shift(@Bins)) { push (@Xdata,$bin->{'start'}); @@ -185,21 +202,22 @@ sub AnalyzeScoreData { if ($bin->{'count'} > $max) { $max = $bin->{'count'}; } - $Str.= '
---|---|
'.$bin->{'start'}.' - '.$bin->{'end'}.' | '. - ''.$bin->{'count'}.' | '.$bin->{'start'}.' - '.$bin->{'end'}.' | '. + ''.$bin->{'count'}.' | '. + &Apache::loncommon::end_data_table_row().'
".&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 .= '
'.&mt('Sections').' | '; - $Str .= ''.&mt('Enrollment Status').' | '; - $Str .= ''.&mt('Sequences and Folders').' | '; - $Str .= ''. - &Apache::lonstathelpers::limit_by_time_form().' | '; - $Str .= ''.&mt('Sections').' | '; + $Str .= ''.&mt('Groups').' | '; + $Str .= ''.&mt('Access Status').' | '; + $Str .= ''.&mt('Sequences and Folders').' | '; + $Str .= ''.&mt('Time Period').' | '; + $Str .= &Apache::loncommon::end_data_table_header_row(); # - $Str .= '
---|---|---|---|---|---|---|
'."\n"; + $Str .= &Apache::loncommon::start_data_table_row(); + $Str .= ' | '."\n"; $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); $Str .= ' | '; # - $Str .= ''; + $Str .= ' | '."\n"; + $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',5); + $Str .= ' | '; + $Str .= ''; $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); - $Str .= ' | '."\n"; + $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 .= ''."\n"; + $Str .= &Apache::lonstatistics::map_select('Maps','multiple,all',5); $Str .= ' | '; # - $Str .= '