--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2003/10/29 18:59:46 1.2
+++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/01/08 19:18:50 1.8
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonsubmissiontimeanalysis.pm,v 1.2 2003/10/29 18:59:46 matthew Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.8 2004/01/08 19:18:50 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -69,6 +69,16 @@ sub render_resource {
sub BuildSubmissionTimePage {
my ($r,$c)=@_;
+ #
+ my %Saveable_Parameters = ('Status' => 'scalar',
+ 'Section' => 'array');
+ &Apache::loncommon::store_course_settings('submissiontime_analysis',
+ \%Saveable_Parameters);
+ &Apache::loncommon::restore_course_settings('submissiontime_analysis',
+ \%Saveable_Parameters);
+ #
+ &Apache::lonstatistics::PrepareClasslist();
+ #
$r->print('
'.&mt('Submission Time Plots').'
');
$r->print(&CreateInterface());
#
@@ -231,7 +241,10 @@ sub analyze_times {
$Xlabel[$bincount] = '';
}
}
-
+ my $numstudents = scalar(@$students);
+ for (my $i=0;$i<=$#AnsData;$i++) {
+ $AnsData[$i] = int(100*($AnsData[$i]/$numstudents));
+ }
my $title = 'Number of Submissions and Number Correct';
my $xlabel;
(undef,undef,undef,$mday,$month,$year,$wday) = localtime($day_start);
@@ -240,19 +253,28 @@ sub analyze_times {
(undef,undef,undef,$mday,$month,$year,$wday) = localtime($endtime);
$xlabel .= $FullWeekDay[$wday].' '.
join(' ',($Month[$month],$mday,1900+$year));
+ my $width = 50+2*$bincount;
+ if ($width < 250) {
+ $width = 250;
+ }
$html .= &Apache::loncommon::DrawXYYGraph($title,
$xlabel,
- 'Number of Submissions per hour',
+ 'Submissions vs Time',
$plotcolors,
\@Xlabel,
\@Ydata,
0,$max,
\@AnsData,
- 0,scalar(@$students),
+ 0,100,
(xskip => $bins_per_day,
x_ticks => $bins_per_day,
x_tick_offset => $bins_per_day,
- width => 50+2*$bincount)
+ width => $width,
+ y1_label=>'Number of Submissions per hour',
+ y2_label=>'Percent of Students answering Correctly',
+ 'data.1.label'=>'Submissions per hour',
+ 'data.2.label'=>'Percent correct',
+ )
);
$html .= '
';
return $html;
@@ -261,7 +283,7 @@ sub analyze_times {
sub successful_submission {
my ($row) = @_;
if (ref($row) eq 'ARRAY') {
- return $row->[1];
+ return $row->[&Apache::loncoursedata::RT_awarded()];
}
return undef;
return 0;
@@ -270,7 +292,7 @@ sub successful_submission {
sub get_time_from_row {
my ($row) = @_;
if (ref($row) eq 'ARRAY') {
- return $row->[3];
+ return $row->[&Apache::loncoursedata::RT_timestamp()];
}
return undef;
}
@@ -278,7 +300,7 @@ sub get_time_from_row {
sub get_tries_from_row {
my ($row) = @_;
if (ref($row) eq 'ARRAY') {
- return $row->[2];
+ return $row->[&Apache::loncoursedata::RT_tries()];
}
return undef;
}
@@ -354,14 +376,23 @@ sub ProblemSelector {
if ($ENV{'form.problemchoice'} eq $value) {
$checked = 'checked ';
}
+ my $title = $res->{'title'};
+ if (! defined($title) || $title eq '') {
+ ($title) = ($res->{'src'} =~ m:/([^/]*)$:);
+ }
+# &Apache::lonnet::logthis('title = :'.$title.':');
$seq_str .= ''.
''.
' | '.
- ''.$res->{'title'}.' ';
+ ''.$title.' ';
} else {
+ my $title = $res->{'title'};
+ if (! defined($title) || $title eq '') {
+ ($title) = ($res->{'src'} =~ m:/([^/]*)$:);
+ }
$seq_str .= ' |
'.
' '.' | '.
- ''.$res->{'title'}.''.
+ ''.$title.''.
" |
\n";
foreach my $part (@{$res->{'parts'}}) {
my $value = &Apache::lonnet::escape