Diff for /loncom/interface/lontrackstudent.pm between versions 1.15 and 1.19

version 1.15, 2005/04/07 06:56:23 version 1.19, 2006/05/01 19:37:34
Line 49  use Apache::lonnet; Line 49  use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Time::HiRes;  use Time::HiRes;
   
   my $num_records=500;
   
 sub get_data {  sub get_data {
     my ($r,$prog_state,$navmap,$mode) = @_;      my ($r,$prog_state,$navmap,$mode) = @_;
     ##      ##
Line 61  sub get_data { Line 63  sub get_data {
     #      #
     my $max_time = &get_max_time_in_db($r,$prog_state);      my $max_time = &get_max_time_in_db($r,$prog_state);
     if (defined($max_time)) {      if (defined($max_time)) {
         $r->print('<h3>'.&mt('Activity data goes to [_1]',          $r->print('<h3>'.&mt('Activity data compiled up to [_1]',
                              &Apache::lonlocal::locallocaltime($max_time)).                               &Apache::lonlocal::locallocaltime($max_time)).
                   '</h3>');                    '</h3>'.&mt('While data is processed, periodically reload this page for more recent activity').'<br />');
         $r->rflush();          $r->rflush();
     } else {      } else {
         $r->print('<h3>'.&mt('Unable to retrieve any data.  Please reload this page and try again.').'</h3>');          $r->print('<h3>'.&mt('Unable to retrieve any data.  Please reload this page and try again.').'</h3>');
Line 107  sub get_data { Line 109  sub get_data {
         ($r,$prog_state,&mt('Parsing results'));          ($r,$prog_state,&mt('Parsing results'));
     #      #
     &output_results($r,$results_file,$navmap,$mode);      &output_results($r,$results_file,$navmap,$mode);
       my ($sname,$sdom) = ($mode=~/^student:(.*):(.*)$/);
       $r->print(&Apache::loncommon::track_student_link(
     'View more activity by this student',
     $sname,$sdom,undef,
     ($env{'form.start'}+$num_records)));
   
     &Apache::lonhtmlcommon::Update_PrgWin($r,$prog_state,&mt('Finished!'));      &Apache::lonhtmlcommon::Update_PrgWin($r,$prog_state,&mt('Finished!'));
     return;      return;
 }  }
Line 188  sub build_query { Line 196  sub build_query {
     my $home = $env{'course.'.$cid.'.home'};      my $home = $env{'course.'.$cid.'.home'};
     my $course = $env{'course.'.$cid.'.num'};      my $course = $env{'course.'.$cid.'.num'};
     my $prefix = $course.'_'.$domain.'_';      my $prefix = $course.'_'.$domain.'_';
       my $start = ($env{'form.start'}+0);
     #      #
     my %table = &table_names();      my %table = &table_names();
     #      #
Line 200  sub build_query { Line 209  sub build_query {
             LEFT JOIN $table{'student'}  AS C ON C.student_id=A.student_id               LEFT JOIN $table{'student'}  AS C ON C.student_id=A.student_id 
             LEFT JOIN $table{'machine'}  AS E ON E.machine_id=A.machine_id              LEFT JOIN $table{'machine'}  AS E ON E.machine_id=A.machine_id
             ORDER BY A.time DESC              ORDER BY A.time DESC
             LIMIT 500              LIMIT $start, $num_records
         };          };
     } elsif ($mode =~ /^student:(.*):(.*)$/) {      } elsif ($mode =~ /^student:(.*):(.*)$/) {
         my $student = $1.':'.$2;          my $student = $1.':'.$2;
Line 212  sub build_query { Line 221  sub build_query {
                 LEFT JOIN $table{'machine'}  AS E ON E.machine_id=A.machine_id                  LEFT JOIN $table{'machine'}  AS E ON E.machine_id=A.machine_id
                 WHERE C.student='$student'                  WHERE C.student='$student'
                 ORDER BY A.time DESC                  ORDER BY A.time DESC
                 LIMIT 500                  LIMIT $start, $num_records
             };              };
     }      }
     $query =~ s|$/||g;      $query =~ s|$/||g;
Line 227  sub output_results { Line 236  sub output_results {
     ##      ##
     if (! -s $results_file) {      if (! -s $results_file) {
         # results file is empty, just let them know there is no data          # results file is empty, just let them know there is no data
         $r->print('<h2>'.&mt('No data was returned for your request').'</h2>');          $r->print('<h2>'.&mt('So far, no data has been returned for your request').'</h2>');
         return;          return;
     }      }
     if (! open(ACTIVITYDATA,$results_file)) {      if (! open(ACTIVITYDATA,$results_file)) {
Line 262  sub output_results { Line 271  sub output_results {
             '<th align="left">'.&mt('Data').'</th>'.              '<th align="left">'.&mt('Data').'</th>'.
             '</tr>'.$/;              '</tr>'.$/;
     }      }
     my $count = -1;      my $count = $env{'form.start'}-1;
     $r->rflush();      $r->rflush();
     ##      ##
     ##      ##
Line 336  sub output_results { Line 345  sub output_results {
  $values = &display_values($action,$values);   $values = &display_values($action,$values);
         #          #
         # Build the row for output          # Build the row for output
         my $tablerow = qq{<tr class="$class">};          my $tablerow = qq{<tr class="$class"><td>}.($count+1).qq{</td>};
         if ($src =~ m|^/adm/|) {          if ($src =~ m|^/adm/|) {
             $tablerow .=               $tablerow .= 
                 '<td valign="top"><nobr>'.$title.'</nobr></td>';                  '<td valign="top"><nobr>'.$title.'</nobr></td>';
Line 357  sub output_results { Line 366  sub output_results {
             '</tr>';              '</tr>';
         $r->print($tablerow.$/);          $r->print($tablerow.$/);
     }      }
     $r->print('</table>'.$/) if (! $count % 50);      $r->print('</table>'.$/);### if (! $count % 50);
     close(ACTIVITYDATA);      close(ACTIVITYDATA);
     return;      return;
 }  }
Line 488  sub handler { Line 497  sub handler {
     #      #
     # Extract form elements from query string      # Extract form elements from query string
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['selected_student']);                                              ['selected_student','start']);
     #      #
     # We will almost always need this...      # We will almost always need this...
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
Line 501  sub handler { Line 510  sub handler {
                                             bug=>'instructor interface'});                                              bug=>'instructor interface'});
     #      #
     # Give the LON-CAPA page header      # Give the LON-CAPA page header
     my $html=&Apache::lonxml::xmlbegin();      $r->print(&Apache::loncommon::start_page('Student Activity',&styles()).
     $r->print($html.'<head>'.&styles().'<title>'.                &Apache::lonhtmlcommon::breadcrumbs('Student Activity'));
               &mt('Student Activity').  
               "</title></head>\n".  
               &Apache::loncommon::bodytag('Student Activity').  
               &Apache::lonhtmlcommon::breadcrumbs(undef,'Student Activity'));  
     $r->rflush();      $r->rflush();
     #      #
     # Begin form output      # Begin form output
Line 536  sub handler { Line 541  sub handler {
                       '</h2>');                        '</h2>');
             $r->print('<p>'.&mt(<<END).'</p>');              $r->print('<p>'.&mt(<<END).'</p>');
 Compiling student activity data can take a long time.  Compiling student activity data can take a long time.
 It may be necessary to reload this page to get the most current information.  Your request continues to be processed while results are displayed.
 END  END
             &get_data($r,\%prog_state,$navmap,              &get_data($r,\%prog_state,$navmap,
                       'student:'.$env{'form.selected_student'});                        'student:'.$env{'form.selected_student'});
Line 553  END Line 558  END
     &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);      &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
     #      #
     $r->print("</form>\n");      $r->print("</form>\n");
     $r->print("</body>\n</html>\n");      $r->print(&Apache::loncommon::end_page());
     $r->rflush();      $r->rflush();
     #      #
     return OK;      return OK;

Removed from v.1.15  
changed lines
  Added in v.1.19


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