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

matthew lon-capa-cvs@mail.lon-capa.org
Mon, 28 Feb 2005 20:00:24 -0000


matthew		Mon Feb 28 15:00:24 2005 EDT

  Modified files:              
    /loncom/interface	loncoursedata.pm 
  Log:
  Changed &get_response_time_data inputs to be section & enrollment status
  (like the rest of the statistics calls).  Added error logging.
  
  
Index: loncom/interface/loncoursedata.pm
diff -u loncom/interface/loncoursedata.pm:1.141 loncom/interface/loncoursedata.pm:1.142
--- loncom/interface/loncoursedata.pm:1.141	Tue Nov  2 15:48:02 2004
+++ loncom/interface/loncoursedata.pm	Mon Feb 28 15:00:23 2005
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: loncoursedata.pm,v 1.141 2004/11/02 20:48:02 albertel Exp $
+# $Id: loncoursedata.pm,v 1.142 2005/02/28 20:00:23 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2582,32 +2582,46 @@
 sub RT_timestamp  { return 3; }
 
 sub get_response_time_data {
-    my ($students,$symb,$part,$courseid) = @_;
+    my ($sections,$enrollment,$symb,$part,$courseid) = @_;
     return undef if (! defined($symb) || 
                      ! defined($part));
     $courseid = $ENV{'request.course.id'} if (! defined($courseid));
     #
     &setup_table_names($courseid);
     my $symb_id = &get_symb_id($symb);
+    if (! defined($symb_id)) {
+        &Apache::lonnet::logthis('Unable to find symb for '.$symb.' in '.$courseid);
+        return undef;
+    }
     my $part_id = &get_part_id($part);
+    if (! defined($part_id)) {
+        &Apache::lonnet::logthis('Unable to find id for '.$part.' in '.$courseid);
+        return undef;
+    }
     #
     my $dbh = &Apache::lonmysql::get_dbh();
     return undef if (! defined($dbh));
+    my ($student_requirements,$enrollment_requirements) = 
+        &limit_by_section_and_status($sections,$enrollment,'d');
     my $request = 'SELECT '.
         'a.student_id, a.awarded, a.tries, b.timestamp '.
         'FROM '.$fulldump_part_table.' AS a '.
-        'NATURAL LEFT JOIN '.$fulldump_timestamp_table.' AS b '.
-#        'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '.
-#        'a.transaction = b.transaction '.
+        'LEFT JOIN '.$fulldump_timestamp_table.' AS b '.
+        'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '.
+        'a.transaction = b.transaction '.
+        'LEFT JOIN '.$student_table.' as d '.
+        'ON a.student_id=d.student_id '.
         'WHERE '.
         'a.symb_id='.$symb_id.' AND a.part_id='.$part_id;
-    if (defined($students)) {
-        $request .= ' AND ('.
-            join(' OR ', map {'a.student_id='.
-                                  &get_student_id($_->{'username'},
-                                                  $_->{'domain'})
-                              } @$students
-                 ).')';
+    if (defined($student_requirements) || defined($enrollment_requirements)) {
+        $request .= ' AND ';
+        if (defined($student_requirements)) {
+            $request .= $student_requirements.' AND ';
+        }
+        if (defined($enrollment_requirements)) {
+            $request .= $enrollment_requirements.' AND ';
+        }
+        $request =~ s/( AND )$//;
     }
     $request .= ' ORDER BY b.timestamp';
 #    &Apache::lonnet::logthis("request =\n".$request);