--- loncom/interface/statistics/loncorrectproblemplot.pm 2004/03/08 18:42:58 1.10 +++ loncom/interface/statistics/loncorrectproblemplot.pm 2004/12/10 20:41:39 1.14 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncorrectproblemplot.pm,v 1.10 2004/03/08 18:42:58 matthew Exp $ +# $Id: loncorrectproblemplot.pm,v 1.14 2004/12/10 20:41:39 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,10 +39,6 @@ use Apache::lonlocal; my @SubmitButtons = ( { name => 'CreatePlot', text => 'Create Plot' }, - { name => 'ClearCache', - text => 'Clear Caches' }, - { name => 'updatecaches', - text => 'Update Student Data' }, ); ######################################################### @@ -81,23 +77,16 @@ sub BuildCorrectProblemsPage { ''); } # - &Apache::loncoursedata::clear_internal_caches(); - if (exists($ENV{'form.ClearCache'}) || - exists($ENV{'form.updatecaches'}) || - (exists($ENV{'form.firstanalysis'}) && - $ENV{'form.firstanalysis'} ne 'no')) { - &Apache::lonstatistics::Gather_Full_Student_Data($r); - } - if (! exists($ENV{'form.firstanalysis'})) { - $r->print(''); - } else { - $r->print(''); - } + my @CacheButtonHTML = + &Apache::lonstathelpers::manage_caches($r,'Statistics','stats_status'); foreach my $button (@SubmitButtons) { $r->print(''); $r->print(' 'x5); } + foreach my $html (@CacheButtonHTML) { + $r->print($html.(' 'x5)); + } $r->rflush(); # # Determine which problem symbs we are to sum over @@ -121,6 +110,14 @@ sub BuildCorrectProblemsPage { } } } + } 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'}}); + } + } } my ($starttime,$endtime) = &Apache::lonstathelpers::get_time_limits(); if (defined($starttime) || defined($endtime)) { @@ -135,6 +132,8 @@ sub BuildCorrectProblemsPage { $Apache::lonstatistics::enrollment_status,undef, $starttime,$endtime); $r->print(&AnalyzeScoreData($score_data,$title,$total_parts)); + } else { + $r->print('

'.&mt('Make a sequence selection from the "Sequences and Folders" menu and hit "Create Plot" to begin').'

'); } return; } @@ -157,15 +156,14 @@ sub AnalyzeScoreData { my ($score_data,$title,$total_parts) = @_; # # Basic check first - if (@$score_data < 1) { - return '

There is no data to plot

'; + if (ref($score_data) ne 'ARRAY' || @$score_data < 1) { + return '

'.&mt('There is no data to plot').'

'; } # # Determine which bins to use my $lowest = $score_data->[0]->[0]; $lowest = 0; my $highest = $score_data->[-1]->[0]; - &Apache::lonnet::logthis('highest = '.$highest); my $binsize = 1; if ($highest > 50) { $binsize = 2; } if ($highest > 100) { $binsize = 5; } @@ -177,7 +175,8 @@ sub AnalyzeScoreData { # Get the data into the bins (destroying $score_data in the process) my @Bins = &bin_data($score_data,$binsize,$lowest,$highest); my @Xdata; my @Ydata; my $max; - my $Str = ''."\n".''."\n"; + my $Str = + '
RangeCount
'."\n".''."\n"; my $sum = 0; while (my $bin = shift(@Bins)) { push (@Xdata,$bin->{'start'}); @@ -193,14 +192,15 @@ sub AnalyzeScoreData { $max = 5*(int($max/5)+1); $Str .= "
RangeCount

\n"; $title = &HTML::Entities::decode($title); - $Str = "
\n".&Apache::loncommon::DrawBarGraph($title.' N = '.$sum, - 'Num Correct Problems (max:'.$total_parts.')', + $Str = "\n

".&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"; return $Str; } @@ -281,6 +281,8 @@ sub CreateInterface { my $Str; $Str .= &Apache::lonhtmlcommon::breadcrumbs (undef,'Correct Problems Plot'); + $Str .= '

'; + # $Str .= ''."\n"; $Str .= ''; $Str .= ''; @@ -289,8 +291,7 @@ sub CreateInterface { $Str .= ''; $Str .= ''."\n"; - ## - ## + # $Str .= ''; @@ -311,9 +312,14 @@ sub CreateInterface { $only_seq_with_assessments); $Str .= ''; # - ## $Str .= ''."\n"; $Str .= '
'.&mt('Sections').''. &Apache::lonstathelpers::limit_by_time_form().'
'."\n"; $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); $Str .= '
'."\n"; + # + $Str .= ''.&mt('Status: [_1]', + ''). + ''.'

'; + ## return $Str; }