--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2011/12/21 21:25:51 1.33
+++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2020/11/18 15:38:56 1.35.2.4
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonsubmissiontimeanalysis.pm,v 1.33 2011/12/21 21:25:51 www Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.35.2.4 2020/11/18 15:38:56 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -31,7 +31,6 @@ use strict;
use Apache::lonnet;
use Apache::loncommon();
use Apache::lonhtmlcommon();
-use Apache::lonquickgrades();
use Apache::loncoursedata();
use Apache::lonstatistics;
use Apache::lonstathelpers;
@@ -68,15 +67,14 @@ sub BuildSubmissionTimePage {
&Apache::lonstatistics::PrepareClasslist();
#
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Submission Time Plots'));
- &Apache::lonquickgrades::startGradeScreen($r,'statistics');
$r->print(&CreateInterface());
#
my @Students = @Apache::lonstatistics::Students;
#
if (@Students < 1) {
$r->print('
'
- .&mt('There are no students in the sections selected.'
- .'
')
+ .&mt('There are no students in the sections selected.')
+ .''
);
}
#
@@ -105,20 +103,9 @@ sub BuildSubmissionTimePage {
$r->rflush();
#
# Determine which problem we are to analyze
- my $current_problem = &Apache::lonstathelpers::get_target_from_id
- ($env{'form.problemchoice'});
- #
- my ($navmap,$prev,$curr,$next) =
- &Apache::lonstathelpers::get_prev_curr_next($current_problem,
- '.',
- 'part');
- if (exists($env{'form.PrevProblemAnalysis'}) && defined($prev)) {
- $current_problem = $prev;
- } elsif (exists($env{'form.NextProblemAnalysis'}) && defined($next)) {
- $current_problem = $next;
- } else {
- $current_problem = $curr;
- }
+ my ($navmap,$current_problem) = &get_current_problem(); # need to retrieve $navmap
+ # to support $resource->* calls
+ # for src and compTitle (below)
#
# Store the current problem choice and send it out in the form
$env{'form.problemchoice'} =
@@ -138,13 +125,12 @@ sub BuildSubmissionTimePage {
} else {
$r->print(''.$resource->compTitle.'
');
$r->print(''.$resource->src.'
');
- $r->print(''.
+ $r->print('
'.
&Apache::lonstatistics::section_and_enrollment_description().
- '');
+ '
');
$r->rflush();
- $r->print('
');
$r->print(&Apache::lonstathelpers::render_resource($resource));
- $r->print('
');
+ $r->print('
');
$r->rflush();
if (@Students) {
$r->print(&analyze_times($r,$resource->symb,\@Students,
@@ -155,6 +141,23 @@ sub BuildSubmissionTimePage {
}
}
+sub get_current_problem {
+ my $current_problem = &Apache::lonstathelpers::get_target_from_id
+ ($env{'form.problemchoice'});
+ my ($navmap,$prev,$curr,$next) =
+ &Apache::lonstathelpers::get_prev_curr_next($current_problem,
+ '.',
+ 'part');
+ if (exists($env{'form.PrevProblemAnalysis'}) && defined($prev)) {
+ $current_problem = $prev;
+ } elsif (exists($env{'form.NextProblemAnalysis'}) && defined($next)) {
+ $current_problem = $next;
+ } else {
+ $current_problem = $curr;
+ }
+ return ($navmap,$current_problem);
+}
+
#########################################################
#########################################################
##
@@ -220,7 +223,7 @@ sub analyze_times {
my @Ydata=(0); # number of submissions
my @AnsData=(0); # number of correct submissions
my @Xlabel=($WeekDay[$wday]); # Labels of itmes
- my @BinEnd; # The end time of each bin
+ my @BinEnd=($endtime); # The end time of each bin
my $cumulative_answers = 0; # The sum of @AnsData
my %students; # which students have attempted the problem?
#
@@ -232,7 +235,7 @@ sub analyze_times {
$Ydata[$bincount] = 0;
$AnsData[$bincount] = 0;
$endtime += $binsize;
- push(@BinEnd,$endtime);
+ $BinEnd[$bincount] = $endtime;
if ($bincount % (86400/$binsize) == 0) {
$wday++;
$wday %= 7;
@@ -254,7 +257,7 @@ sub analyze_times {
$Ydata[$bincount]=0;
$AnsData[$bincount]=0;
$endtime += $binsize;
- push(@BinEnd,$endtime);
+ $BinEnd[$bincount]=$endtime;
if ($bincount % (86400/$binsize) == 0) {
$wday ++;
$wday %= 7;
@@ -277,25 +280,19 @@ sub analyze_times {
}
#
# Build the data table
- $htmltable = ''.
- '
'.
- ''.
- ''.
+ $htmltable = '
'.&mt('Student submission data').'
'.
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ &Apache::loncommon::start_data_table_row().
'
'.&mt('Begin').' | '.
- ''.(' 'x3).' | '.
''.&mt('End').' | '.
''.&mt('Submissions (plotted)').' | '.
- ''.(' 'x3).' | '.
''.&mt('Correct Submissions (not plotted)').' | '.
- ''.(' 'x3).' | '.
''.&mt('Cumulative Correct of those attempting the problem (not plotted)').' | '.
- ''.(' 'x3).' | '.
''.&mt('Cumulative Percent Correct of those attempting the problem (not plotted)').' | '.
- ''.(' 'x3).' | '.
''.&mt('Cumulative Percent Correct of selected students (plotted)').' | '.
- '
'.
- ''.
+ &Apache::loncommon::end_data_table_row().
+ &Apache::loncommon::end_data_table_header_row().
'';
my @CumulativeCorrect=(0);
my @corr_as_percent_of_selected;
@@ -308,28 +305,23 @@ sub analyze_times {
sprintf('%3.1f',100*$CumulativeCorrect[$i]/scalar(@$students));
if ($Ydata[$i] != 0) {
next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0);
- $htmltable .=
- ''.
+ $htmltable .=
+ &Apache::loncommon::start_data_table_row().
''.
&Apache::lonlocal::locallocaltime($BinEnd[$i]-$binsize).
' | '.
- ' | '.
''.
&Apache::lonlocal::locallocaltime($BinEnd[$i]).' | '.
''.
''.$Ydata[$i].(' 'x3).' | '.
- ' | '.
''.$AnsData[$i].(' 'x3).' | '.
- ' | '.
''.$CumulativeCorrect[$i].' | '.
- ' | '.
''.$corr_as_percent_of_answering[$i].' | '.
- ' | '.
''.$corr_as_percent_of_selected[$i].' | '.
- '
'.$/;
+ &Apache::loncommon::end_data_table_row().$/;
}
}
- $htmltable .= '
';
+ $htmltable .= ''.&Apache::loncommon::end_data_table().'';
#
# Build the plot
my $title = '';#'Number of Submissions and Number Correct';