Diff for /loncom/interface/statistics/lonsubmissiontimeanalysis.pm between versions 1.1 and 1.2

version 1.1, 2003/10/29 15:22:04 version 1.2, 2003/10/29 18:59:46
Line 149  sub get_week_start { Line 149  sub get_week_start {
   
 sub analyze_times {  sub analyze_times {
     my ($r,$resource,$students,$part) = @_;      my ($r,$resource,$students,$part) = @_;
       #
       # Convenience arrays
       my @FullWeekDay = (qw/Sunday Monday Tuesday Wednesday Thursday Friday
                          Saturday/);
       my @WeekDay = (qw/SUN MON TUE WED THU FRI SAT SUN/);
       my @Month = (qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/);
       #
     my $html; # holds results of analysis      my $html; # holds results of analysis
     # Get the data      # Get the data
     my $SubData = &Apache::loncoursedata::get_response_time_data      my $SubData = &Apache::loncoursedata::get_response_time_data
Line 163  sub analyze_times { Line 170  sub analyze_times {
         return $html;          return $html;
     }      }
     # Process the data      # Process the data
     #   Get first and last times  
     my $span = &get_time_from_row($SubData->[-1]) -   
                &get_time_from_row($SubData->[0]);  
     if ($span == 0) {  
         $html.= '<h2>There is no submission data for this resource</h2>';  
         return $html;  
     }  
     #      #
     my (undef,undef,undef,$mday,$month,$year,$wday,$yday,$isdst) =       my (undef,undef,undef,$mday,$month,$year,$wday,$yday,$isdst) = 
         localtime(&get_time_from_row($SubData->[0]));          localtime(&get_time_from_row($SubData->[0]));
     my $day_start = &Time::Local::timelocal(0,0,0,$mday,$month,$year);      my $day_start = &Time::Local::timelocal(0,0,0,$mday,$month,$year);
     my $start_day_of_week = $wday;  
     #  
     my @WeekDay = (qw/SUN MON TUE WED THU FRI SAT SUN/);  
     my @Month = (qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/);  
     #  
     my $cumulative_answers = 0;  
     #  
     my @Ydata;  
     my @AnsData;  
     my @Xlabel;  
     #      #
       # Configure the bins used to store the data.
     my $binsize = 3600; # seconds      my $binsize = 3600; # seconds
     my $bins_per_day = 86400/$binsize;      my $bins_per_day = 86400/$binsize;
     my $bincount = 0;      my $bincount = 0;
     my $endtime = $day_start;      my $endtime = $day_start;
     #      #
       # Initialize loop variables
     my $max;      my $max;
       my @Ydata=(0);
       my @AnsData=(0);
       my @Xlabel=($WeekDay[$wday]);
       my $cumulative_answers = 0;
       #
     foreach my $row (@$SubData) {      foreach my $row (@$SubData) {
         my $subtime = &get_time_from_row($row);          my $subtime = &get_time_from_row($row);
         while ($subtime > $endtime && $endtime < time) {          while ($subtime > $endtime && $endtime < time) {
Line 200  sub analyze_times { Line 197  sub analyze_times {
             $AnsData[$bincount]=$AnsData[$bincount-1];              $AnsData[$bincount]=$AnsData[$bincount-1];
             $endtime += $binsize;              $endtime += $binsize;
             if ($bincount % (86400/$binsize) == 0) {              if ($bincount % (86400/$binsize) == 0) {
                 $Xlabel[$bincount] = $WeekDay[$wday++];                  $wday++;
                 $wday %= 7;                  $wday %= 7;
                   $Xlabel[$bincount] = $WeekDay[$wday];
             } else {              } else {
                 $Xlabel[$bincount] = '';                  $Xlabel[$bincount] = '';
             }              }
Line 226  sub analyze_times { Line 224  sub analyze_times {
         $AnsData[$bincount]=$AnsData[$bincount-1];          $AnsData[$bincount]=$AnsData[$bincount-1];
         $endtime += $binsize;          $endtime += $binsize;
         if ($bincount % (86400/$binsize) == 0) {          if ($bincount % (86400/$binsize) == 0) {
               $wday ++;
               $wday %= 7;
             $Xlabel[$bincount] = $WeekDay[$wday];              $Xlabel[$bincount] = $WeekDay[$wday];
         } else {          } else {
             $Xlabel[$bincount] = '';              $Xlabel[$bincount] = '';
Line 234  sub analyze_times { Line 234  sub analyze_times {
   
     my $title = 'Number of Submissions and Number Correct';      my $title = 'Number of Submissions and Number Correct';
     my $xlabel;      my $xlabel;
     (undef,undef,undef,$mday,$month,$year) = localtime($day_start);      (undef,undef,undef,$mday,$month,$year,$wday) = localtime($day_start);
     $xlabel .= 'Sunday '.join(' ',($Month[$month],$mday,1900+$year)).' - ';      $xlabel .= $FullWeekDay[$wday].' '.
     (undef,undef,undef,$mday,$month,$year) = localtime($endtime);          join(' ',($Month[$month],$mday,1900+$year)).' - ';
     $xlabel .= 'Sunday '.join(' ',($Month[$month],$mday,1900+$year));      (undef,undef,undef,$mday,$month,$year,$wday) = localtime($endtime);
       $xlabel .= $FullWeekDay[$wday].' '.
           join(' ',($Month[$month],$mday,1900+$year));
     $html .= &Apache::loncommon::DrawXYYGraph($title,      $html .= &Apache::loncommon::DrawXYYGraph($title,
                                               $xlabel,                                                $xlabel,
                                               'Number of Submissions',                                                'Number of Submissions per hour',
                                               $plotcolors,                                                $plotcolors,
                                               \@Xlabel,                                                \@Xlabel,
                                               \@Ydata,                                                \@Ydata,

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>