[LON-CAPA-cvs] cvs: loncom /interface/statistics lonsubmissiontimeanalysis.pm

matthew lon-capa-cvs@mail.lon-capa.org
Fri, 25 Jun 2004 18:23:02 -0000


matthew		Fri Jun 25 14:23:02 2004 EDT

  Modified files:              
    /loncom/interface/statistics	lonsubmissiontimeanalysis.pm 
  Log:
  Bug 2473: html table of data for submission time plots.
  
  
Index: loncom/interface/statistics/lonsubmissiontimeanalysis.pm
diff -u loncom/interface/statistics/lonsubmissiontimeanalysis.pm:1.15 loncom/interface/statistics/lonsubmissiontimeanalysis.pm:1.16
--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm:1.15	Fri Jun  4 17:42:19 2004
+++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm	Fri Jun 25 14:23:02 2004
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonsubmissiontimeanalysis.pm,v 1.15 2004/06/04 21:42:19 matthew Exp $
+# $Id: lonsubmissiontimeanalysis.pm,v 1.16 2004/06/25 18:23:02 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -159,6 +159,7 @@
 
 sub analyze_times {
     my ($r,$resource,$students,$part) = @_;
+    my $htmltable;
     #
     # Convenience arrays
     my @FullWeekDay = (qw/Sunday Monday Tuesday Wednesday Thursday Friday
@@ -196,6 +197,7 @@
     my @Ydata=(0);
     my @AnsData=(0);
     my @Xlabel=($WeekDay[$wday]);
+    my @BinEnd;
     my $cumulative_answers = 0;
     #
     foreach my $row (@$SubData) {
@@ -206,6 +208,7 @@
             $Ydata[$bincount]=0;
             $AnsData[$bincount]=$AnsData[$bincount-1];
             $endtime += $binsize;
+            push(@BinEnd,$endtime);
             if ($bincount % (86400/$binsize) == 0) {
                 $wday++;
                 $wday %= 7;
@@ -242,9 +245,42 @@
         }
     }
     my $numstudents = scalar(@$students);
+    $htmltable = '<p>'.
+        '<table rules="groups" frame="border" '.
+        'summary="Student submission data">'.
+        '<thead>'.
+        '<tr>'.
+        '<th valign="bottom">'.&mt('Begin Date').'</th>'.
+        '<th>'.('&nbsp;'x3).'</th>'.
+        '<th valign="bottom">'.&mt('End Date').'</th>'.
+        '<th valign="bottom">'.&mt('Submissions').'</th>'.
+        '<th>'.('&nbsp;'x3).'</th>'.
+        '<th valign="bottom">'.&mt('Correct<br />Submissions').'</th>'.
+        '<th>'.('&nbsp;'x3).'</th>'.
+        '<th valign="bottom">'.&mt('Percent<br />Correct').'</th>'.
+        '</tr>'.
+        '</thead>'.
+        '<tbody>';
     for (my $i=0;$i<=$#AnsData;$i++) {
         $AnsData[$i] = int(100*($AnsData[$i]/$numstudents));
+        if ($Ydata[$i] != 0) {
+            next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0);
+            $htmltable .= 
+                '<tr>'.
+                '<td align="right">'.
+                &Apache::lonlocal::locallocaltime($BinEnd[$i]-$binsize).
+                '</td>'.
+                '<td>&nbsp;</td>'.
+                '<td align="right">'.
+                    &Apache::lonlocal::locallocaltime($BinEnd[$i]).'</td>'.
+                '</td>'.
+                '<td align="right">'.$Ydata[$i].('&nbsp;'x3).'</td>'.
+                '<td>&nbsp;</td>'.
+                '<td align="right">'.($i>0?$AnsData[$i]-$AnsData[$i-1]:$AnsData[$i]).('&nbsp;'x3).'</td>'.
+                '</tr>'.$/;
+        }
     }
+    $htmltable .= '</tbody></table></p>';
     my $title = 'Number of Submissions and Number Correct';
     my $xlabel;
     (undef,undef,undef,$mday,$month,$year,$wday) = localtime($day_start);
@@ -276,7 +312,7 @@
                      'data.2.label'=>'Percent correct',
                                                )
                                               );
-    $html .= '<br />';
+    $html .= '<br />'.$htmltable;
     return $html;
 }
 
@@ -332,18 +368,19 @@
     $Str .= '<p>';
     $Str .= '<table cellspacing="5">'."\n";
     $Str .= '<tr>';
-    $Str .= '<td align="center"><b>'.&mt('Sections').'</b></td>';
-    $Str .= '<td align="center"><b>'.&mt('Enrollment Status').'</b></td>';
+    $Str .= '<th align="center">'.&mt('Sections').'</th>';
+    $Str .= '<th align="center">'.&mt('Enrollment Status').'</th>';
     $Str .= '</tr>'."\n";
     ##
     ## 
     $Str .= '<tr><td align="center">'."\n";
-    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
+    $Str .= &Apache::lonstatistics::SectionSelect('Section','multiple',4);
     $Str .= '</td>';
     #
     $Str .= '<td align="center">';
-    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,5);
+    $Str .= &Apache::lonhtmlcommon::StatusOptions(undef,undef,4);
     $Str .= '</td>';
+    #
     $Str .= '</tr>'."\n";
     $Str .= '</table>'."\n";
     #