--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/02/20 16:24:20 1.12
+++ 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.12 2004/02/20 16:24:20 matthew Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.16 2004/06/25 18:23:02 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -75,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'}) ||
@@ -102,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
@@ -136,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'}));
@@ -164,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
@@ -201,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) {
@@ -211,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;
@@ -247,9 +245,42 @@ sub analyze_times {
}
}
my $numstudents = scalar(@$students);
+ $htmltable = ''.
+ '
'.
+ ''.
+ ''.
+ ''.&mt('Begin Date').' | '.
+ ''.(' 'x3).' | '.
+ ''.&mt('End Date').' | '.
+ ''.&mt('Submissions').' | '.
+ ''.(' 'x3).' | '.
+ ''.&mt('Correct Submissions').' | '.
+ ''.(' 'x3).' | '.
+ ''.&mt('Percent Correct').' | '.
+ '
'.
+ ''.
+ '';
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 .=
+ ''.
+ ''.
+ &Apache::lonlocal::locallocaltime($BinEnd[$i]-$binsize).
+ ' | '.
+ ' | '.
+ ''.
+ &Apache::lonlocal::locallocaltime($BinEnd[$i]).' | '.
+ ''.
+ ''.$Ydata[$i].(' 'x3).' | '.
+ ' | '.
+ ''.($i>0?$AnsData[$i]-$AnsData[$i-1]:$AnsData[$i]).(' 'x3).' | '.
+ '
'.$/;
+ }
}
+ $htmltable .= '
';
my $title = 'Number of Submissions and Number Correct';
my $xlabel;
(undef,undef,undef,$mday,$month,$year,$wday) = localtime($day_start);
@@ -281,7 +312,7 @@ sub analyze_times {
'data.2.label'=>'Percent correct',
)
);
- $html .= '
';
+ $html .= '
'.$htmltable;
return $html;
}
@@ -334,36 +365,30 @@ sub CreateInterface {
## Build the menu
my $Str = '';
$Str .= &Apache::lonhtmlcommon::breadcrumbs(undef,'Submission Time Plots');
+ $Str .= '';
$Str .= '
'."\n";
$Str .= '';
- $Str .= ''.&mt('Sections').' | ';
- $Str .= ''.&mt('Enrollment Status').' | ';
- $Str .= ' | ';
+ $Str .= ''.&mt('Sections').' | ';
+ $Str .= ''.&mt('Enrollment Status').' | ';
$Str .= '
'."\n";
##
##
$Str .= ''."\n";
- $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+ $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',4);
$Str .= ' | ';
#
$Str .= '';
- $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+ $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,4);
$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 .= '
'."\n";
+ #
+ $Str .= ''.&mt('Status: [_1]',
+ '').
+ ''.'';
+ ##
return $Str;
}