--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2005/03/04 20:34:15 1.19
+++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2006/05/05 20:03:43 1.26
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonsubmissiontimeanalysis.pm,v 1.19 2005/03/04 20:34:15 matthew Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.26 2006/05/05 20:03:43 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,7 +28,7 @@
package Apache::lonsubmissiontimeanalysis;
use strict;
-use Apache::lonnet();
+use Apache::lonnet;
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::loncoursedata();
@@ -37,7 +37,6 @@ use Apache::lonstathelpers;
use Apache::lonlocal;
use HTML::Entities();
use Time::Local();
-use Spreadsheet::WriteExcel();
my $plotcolors = ['#33ff00',
'#ff33cc', '#990000', '#aaaa66', '#663399', '#ff9933',
@@ -79,13 +78,14 @@ sub BuildSubmissionTimePage {
&Apache::lonstathelpers::manage_caches($r,'Statistics','stats_status');
$r->rflush();
#
- if (! exists($ENV{'form.problemchoice'}) ||
- exists($ENV{'form.SelectAnother'})) {
- $r->print('');
- $r->print(' 'x5);
+ if (! exists($env{'form.problemchoice'}) ||
+ exists($env{'form.SelectAnother'})) {
+ my $submit_button = '';
+ $r->print($submit_button.' 'x5);
$r->print('
'.&mt('Please select a problem to analyze').'
');
- $r->print(&Apache::lonstathelpers::problem_selector('.'));
+ $r->print(&Apache::lonstathelpers::problem_selector('.',
+ $submit_button));
} else {
foreach my $button (@SubmitButtons) {
$r->print('print('');
+ $env{'form.problemchoice'}.'" />');
#
$r->print('
');
$r->rflush();
@@ -128,6 +128,9 @@ sub BuildSubmissionTimePage {
} else {
$r->print(''.$resource->compTitle.'
');
$r->print(''.$resource->src.'
');
+ $r->print(''.
+ &Apache::lonstatistics::section_and_enrollment_description().
+ '
');
$r->rflush();
$r->print(&Apache::lonstathelpers::render_resource($resource));
$r->print('
');
@@ -170,7 +173,8 @@ sub analyze_times {
my $html; # holds results of analysis
# Get the data
my $SubData = &Apache::loncoursedata::get_response_time_data
- (\@Apache::lonstatistics::SelectedSections,
+ ([&Apache::lonstatistics::get_selected_sections()],
+ [&Apache::lonstatistics::get_selected_groups()],
$Apache::lonstatistics::enrollment_status,
$symb,$part);
if (! defined($SubData) || ! ref($SubData)) {
@@ -264,21 +268,27 @@ sub analyze_times {
''.&mt('Begin').' | '.
''.(' 'x3).' | '.
''.&mt('End').' | '.
- ''.&mt('Submissions').' | '.
+ ''.&mt('Submissions (plotted)').' | '.
''.(' 'x3).' | '.
- ''.&mt('Correct Submissions').' | '.
+ ''.&mt('Correct Submissions (not plotted)').' | '.
''.(' 'x3).' | '.
- ''.&mt('Cumulative Correct of those attempting the problem').' | '.
+ ''.&mt('Cumulative Correct of those attempting the problem (not plotted)').' | '.
''.(' 'x3).' | '.
- ''.&mt('Cumulative Percent Correct of those attempting the problem').' | '.
+ ''.&mt('Cumulative Percent Correct of those attempting the problem (not plotted)').' | '.
+ ''.(' 'x3).' | '.
+ ''.&mt('Cumulative Percent Correct of selected students (plotted)').' | '.
''.
''.
'';
my @CumulativeCorrect=(0);
- my @CumulativeCorrectPercent;
+ my @corr_as_percent_of_selected;
+ my @corr_as_percent_of_answering;
for (my $i=0;$i<=$#Ydata;$i++) {
$CumulativeCorrect[$i]=$CumulativeCorrect[-1]+$AnsData[$i];
- $CumulativeCorrectPercent[$i] = sprintf('%3.1f',100*$CumulativeCorrect[$i]/$numstudents);
+ $corr_as_percent_of_answering[$i] =
+ sprintf('%3.1f',100*$CumulativeCorrect[$i]/$numstudents);
+ $corr_as_percent_of_selected[$i] =
+ sprintf('%3.1f',100*$CumulativeCorrect[$i]/scalar(@$students));
if ($Ydata[$i] != 0) {
next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0);
$htmltable .=
@@ -296,7 +306,9 @@ sub analyze_times {
' | '.
''.$CumulativeCorrect[$i].' | '.
' | '.
- ''.$CumulativeCorrectPercent[$i].' | '.
+ ''.$corr_as_percent_of_answering[$i].' | '.
+ ' | '.
+ ''.$corr_as_percent_of_selected[$i].' | '.
''.$/;
}
}
@@ -322,7 +334,7 @@ sub analyze_times {
$plotcolors,
\@Xlabel,
\@Ydata,0,$max,
- \@CumulativeCorrectPercent,0,100,
+ \@corr_as_percent_of_selected,0,100,
(xskip => $bins_per_day,
x_ticks => $bins_per_day,
x_tick_offset => $bins_per_day,
@@ -378,17 +390,18 @@ sub Process_Row {
sub CreateInterface {
##
## Environment variable initialization
- if (! exists$ENV{'form.AnalyzeOver'}) {
- $ENV{'form.AnalyzeOver'} = 'Tries';
+ if (! exists$env{'form.AnalyzeOver'}) {
+ $env{'form.AnalyzeOver'} = 'Tries';
}
##
## Build the menu
my $Str = '';
- $Str .= &Apache::lonhtmlcommon::breadcrumbs(undef,'Submission Time Plots');
+ $Str .= &Apache::lonhtmlcommon::breadcrumbs('Submission Time Plots');
$Str .= '';
$Str .= '
'."\n";
$Str .= '';
$Str .= ''.&mt('Sections').' | ';
+ $Str .= ''.&mt('Groups').' | ';
$Str .= ''.&mt('Enrollment Status').' | ';
$Str .= '
'."\n";
##
@@ -397,6 +410,10 @@ sub CreateInterface {
$Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',4);
$Str .= '';
#
+ $Str .= ''."\n";
+ $Str .= &Apache::lonstatistics::GroupSelect('Group','multiple',4);
+ $Str .= ' | ';
+ #
$Str .= '';
$Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,4);
$Str .= ' | ';