--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2003/12/10 23:06:57 1.5 +++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2004/01/19 21:31:08 1.10 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonsubmissiontimeanalysis.pm,v 1.5 2003/12/10 23:06:57 matthew Exp $ +# $Id: lonsubmissiontimeanalysis.pm,v 1.10 2004/01/19 21:31:08 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,6 +33,7 @@ use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::loncoursedata(); use Apache::lonstatistics; +use Apache::lonstathelpers; use Apache::lonlocal; use HTML::Entities(); use Time::Local(); @@ -50,23 +51,6 @@ my @SubmitButtons = ( text => 'Choose a different resource' }, ); -sub render_resource { - my ($resource) = @_; - ## - ## Render the problem - my $base; - ($base,undef) = ($resource->{'src'} =~ m|(.*/)[^/]*$|); - $base = "http://".$ENV{'SERVER_NAME'}.$base; - my $rendered_problem = - &Apache::lonnet::ssi_body($resource->{'src'}); - $rendered_problem =~ s/<\s*form\s*/)|<\/nop>|g; - return '
'. - ''. - $rendered_problem. - '
'; -} - sub BuildSubmissionTimePage { my ($r,$c)=@_; # @@ -131,7 +115,7 @@ sub BuildSubmissionTimePage { $r->print('

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

'); $r->print('

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

'); $r->rflush(); - $r->print(&render_resource($resource)); + $r->print(&Apache::lonstathelpers::render_resource($resource)); $r->rflush(); $r->print(&analyze_times($r,$resource,\@Students,$part)); } @@ -171,12 +155,12 @@ sub analyze_times { my $SubData = &Apache::loncoursedata::get_response_time_data ($students,$resource->{'symb'},$part); if (! defined($SubData) || ! ref($SubData)) { - $html.= '

There is no submission data for this resource

'; + $html.= '

There is no submission data for this problem

'; return $html; } my $NumSub = scalar(@{$SubData}); if (! @{$SubData}) { - $html.= '

There is no submission data for this resource

'; + $html.= '

There is no submission data for this problem

'; return $html; } # Process the data @@ -241,7 +225,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); @@ -250,19 +237,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;