--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/01/20 15:51:06 1.11 +++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/06/25 18:23:02 1.16 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonsubmissiontimeanalysis.pm,v 1.11 2004/01/20 15:51:06 matthew Exp $ +# $Id: lonsubmissiontimeanalysis.pm,v 1.16 2004/06/25 18:23:02 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -67,7 +67,6 @@ sub BuildSubmissionTimePage { # &Apache::lonstatistics::PrepareClasslist(); # - $r->print('

'.&mt('Submission Time Plots').'

'); $r->print(&CreateInterface()); # my @Students = @Apache::lonstatistics::Students; @@ -76,18 +75,8 @@ sub BuildSubmissionTimePage { $r->print('

There are no students in the sections selected

'); } # - &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'); $r->rflush(); # if (! exists($ENV{'form.problemchoice'}) || @@ -103,6 +92,10 @@ sub BuildSubmissionTimePage { 'value="'.&mt($button->{'text'}).'" />'); $r->print(' 'x5); } + foreach my $html (@CacheButtonHTML) { + $r->print($html.(' 'x5)); + } + $r->rflush(); # # Determine which problem we are to analyze my $current_problem = &Apache::lonstathelpers::get_target_from_id @@ -137,6 +130,7 @@ sub BuildSubmissionTimePage { $r->print('

'.$resource->{'src'}.'

'); $r->rflush(); $r->print(&Apache::lonstathelpers::render_resource($resource)); + $r->print('
'); $r->rflush(); $r->print(&analyze_times($r,$resource,\@Students, $current_problem->{'part'})); @@ -165,6 +159,7 @@ sub get_week_start { sub analyze_times { my ($r,$resource,$students,$part) = @_; + my $htmltable; # # Convenience arrays my @FullWeekDay = (qw/Sunday Monday Tuesday Wednesday Thursday Friday @@ -202,6 +197,7 @@ sub analyze_times { my @Ydata=(0); my @AnsData=(0); my @Xlabel=($WeekDay[$wday]); + my @BinEnd; my $cumulative_answers = 0; # foreach my $row (@$SubData) { @@ -212,6 +208,7 @@ sub analyze_times { $Ydata[$bincount]=0; $AnsData[$bincount]=$AnsData[$bincount-1]; $endtime += $binsize; + push(@BinEnd,$endtime); if ($bincount % (86400/$binsize) == 0) { $wday++; $wday %= 7; @@ -248,9 +245,42 @@ sub analyze_times { } } my $numstudents = scalar(@$students); + $htmltable = '

'. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''; for (my $i=0;$i<=$#AnsData;$i++) { $AnsData[$i] = int(100*($AnsData[$i]/$numstudents)); + if ($Ydata[$i] != 0) { + next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0); + $htmltable .= + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''. + ''.$/; + } } + $htmltable .= '
'.&mt('Begin Date').''.(' 'x3).''.&mt('End Date').''.&mt('Submissions').''.(' 'x3).''.&mt('Correct
Submissions').'
'.(' 'x3).''.&mt('Percent
Correct').'
'. + &Apache::lonlocal::locallocaltime($BinEnd[$i]-$binsize). + ' '. + &Apache::lonlocal::locallocaltime($BinEnd[$i]).''.$Ydata[$i].(' 'x3).' '.($i>0?$AnsData[$i]-$AnsData[$i-1]:$AnsData[$i]).(' 'x3).'

'; my $title = 'Number of Submissions and Number Correct'; my $xlabel; (undef,undef,undef,$mday,$month,$year,$wday) = localtime($day_start); @@ -282,7 +312,7 @@ sub analyze_times { 'data.2.label'=>'Percent correct', ) ); - $html .= '
'; + $html .= '
'.$htmltable; return $html; } @@ -334,36 +364,31 @@ sub CreateInterface { ## ## Build the menu my $Str = ''; + $Str .= &Apache::lonhtmlcommon::breadcrumbs(undef,'Submission Time Plots'); + $Str .= '

'; $Str .= ''."\n"; $Str .= ''; - $Str .= ''; - $Str .= ''; - $Str .= ''; + $Str .= ''; + $Str .= ''; $Str .= ''."\n"; ## ## $Str .= ''; # $Str .= ''; # - 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 .= ''."\n"; $Str .= '
'.&mt('Sections').''.&mt('Enrollment Status').' '.&mt('Sections').''.&mt('Enrollment Status').'
'."\n"; - $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); + $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',4); $Str .= ''; - $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5); + $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,4); $Str .= '
'."\n"; + # + $Str .= ''.&mt('Status: [_1]', + ''). + ''.'

'; + ## return $Str; }