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

version 1.12, 2004/12/30 16:34:05 version 1.15, 2005/04/07 06:56:23
Line 44  package Apache::lontrackstudent; Line 44  package Apache::lontrackstudent;
   
 use strict;  use strict;
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
 use Apache::lonnet();  use Apache::lonmysql;
   use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Time::HiRes;  use Time::HiRes;
   
Line 71  sub get_data { Line 72  sub get_data {
     my $query = &build_query($mode);      my $query = &build_query($mode);
     ##      ##
     ## Send it along      ## Send it along
     my $home = $ENV{'course.'.$ENV{'request.course.id'}.'.home'};      my $home = $env{'course.'.$env{'request.course.id'}.'.home'};
     my $reply=&Apache::lonnet::metadata_query($query,undef,undef,[$home]);      my $reply=&Apache::lonnet::metadata_query($query,undef,undef,[$home]);
     if (ref($reply) ne 'HASH') {      if (ref($reply) ne 'HASH') {
         $r->print('<h2>'.          $r->print('<h2>'.
Line 111  sub get_data { Line 112  sub get_data {
 }  }
   
 sub table_names {  sub table_names {
     my $cid = $ENV{'request.course.id'};      my $cid = $env{'request.course.id'};
     my $domain = $ENV{'course.'.$cid.'.domain'};      my $domain = $env{'course.'.$cid.'.domain'};
     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 %tables =       my %tables = 
         ( student => $prefix.'students',          ( student =>&Apache::lonmysql::fix_table_name($prefix.'students'),
           res     => $prefix.'resource',            res     =>&Apache::lonmysql::fix_table_name($prefix.'resource'),
           machine => $prefix.'machine_table',            machine =>&Apache::lonmysql::fix_table_name($prefix.'machine_table'),
           activity=> $prefix.'activity',            activity=>&Apache::lonmysql::fix_table_name($prefix.'activity'),
           );            );
     return %tables;      return %tables;
 }  }
Line 131  sub get_max_time_in_db { Line 132  sub get_max_time_in_db {
     my %table = &table_names();      my %table = &table_names();
     my $query = qq{SELECT MAX(time) FROM $table{'activity'} };      my $query = qq{SELECT MAX(time) FROM $table{'activity'} };
     #      #
     my $home = $ENV{'course.'.$ENV{'request.course.id'}.'.home'};      my $home = $env{'course.'.$env{'request.course.id'}.'.home'};
     my $reply=&Apache::lonnet::metadata_query($query,undef,undef,[$home]);      my $reply=&Apache::lonnet::metadata_query($query,undef,undef,[$home]);
     if (ref($reply) ne 'HASH') {      if (ref($reply) ne 'HASH') {
         return undef;          return undef;
Line 182  sub get_max_time_in_db { Line 183  sub get_max_time_in_db {
   
 sub build_query {  sub build_query {
     my ($mode) = @_;      my ($mode) = @_;
     my $cid = $ENV{'request.course.id'};      my $cid = $env{'request.course.id'};
     my $domain = $ENV{'course.'.$cid.'.domain'};      my $domain = $env{'course.'.$cid.'.domain'};
     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 %table = &table_names();      my %table = &table_names();
Line 393  sub display_values { Line 394  sub display_values {
 ###################################################################  ###################################################################
 sub request_data_update {  sub request_data_update {
     my $command = 'prepare activity log';      my $command = 'prepare activity log';
     my $cid = $ENV{'request.course.id'};      my $cid = $env{'request.course.id'};
     my $domain = $ENV{'course.'.$cid.'.domain'};      my $domain = $env{'course.'.$cid.'.domain'};
     my $home = $ENV{'course.'.$cid.'.home'};      my $home = $env{'course.'.$cid.'.home'};
     my $course = $ENV{'course.'.$cid.'.num'};      my $course = $env{'course.'.$cid.'.num'};
 #    &Apache::lonnet::logthis($command.' '.$course.' '.$domain.' '.$home);  #    &Apache::lonnet::logthis($command.' '.$course.' '.$domain.' '.$home);
     my $result = &Apache::lonnet::metadata_query($command,$course,$domain,      my $result = &Apache::lonnet::metadata_query($command,$course,$domain,
                                                  [$home]);                                                   [$home]);
Line 462  sub handler { Line 463  sub handler {
     $loaderror=      $loaderror=
         &Apache::lonnet::overloaderror          &Apache::lonnet::overloaderror
         ($r,          ($r,
          $ENV{'course.'.$ENV{'request.course.id'}.'.home'});           $env{'course.'.$env{'request.course.id'}.'.home'});
     if ($loaderror) { return $loaderror; }      if ($loaderror) { return $loaderror; }
     #      #
     # Check for access      # Check for access
     if (! &Apache::lonnet::allowed('vsa',$ENV{'request.course.id'})) {      if (! &Apache::lonnet::allowed('vsa',$env{'request.course.id'})) {
         $ENV{'user.error.msg'}=          $env{'user.error.msg'}=
             $r->uri.":vsa:0:0:Cannot student activity for complete course";              $r->uri.":vsa:0:0:Cannot student activity for complete course";
         if (!           if (! 
             &Apache::lonnet::allowed('vsa',              &Apache::lonnet::allowed('vsa',
                                      $ENV{'request.course.id'}.'/'.                                       $env{'request.course.id'}.'/'.
                                      $ENV{'request.course.sec'})) {                                       $env{'request.course.sec'})) {
             $ENV{'user.error.msg'}=              $env{'user.error.msg'}=
                 $r->uri.":vsa:0:0:Cannot view student activity with given role";                  $r->uri.":vsa:0:0:Cannot view student activity with given role";
             return HTTP_NOT_ACCEPTABLE;              return HTTP_NOT_ACCEPTABLE;
         }          }
Line 500  sub handler { Line 501  sub handler {
                                             bug=>'instructor interface'});                                              bug=>'instructor interface'});
     #      #
     # Give the LON-CAPA page header      # Give the LON-CAPA page header
     $r->print('<html><head>'.&styles.'<title>'.      my $html=&Apache::lonxml::xmlbegin();
       $r->print($html.'<head>'.&styles().'<title>'.
               &mt('Student Activity').                &mt('Student Activity').
               "</title></head>\n".                "</title></head>\n".
               &Apache::loncommon::bodytag('Student Activity').                &Apache::loncommon::bodytag('Student Activity').
Line 523  sub handler { Line 525  sub handler {
         ($r,\%prog_state,&mt('Contacting course home server'));          ($r,\%prog_state,&mt('Contacting course home server'));
     #      #
     my $result = &request_data_update();      my $result = &request_data_update();
     if (ref($result) eq 'HASH') {  
         $result = join(' ',map { $_.'=>'.$result->{$_}; } keys(%$result));  
     }  
     #      #
     if (exists($ENV{'form.selected_student'})) {      if (exists($env{'form.selected_student'})) {
         # For now, just show all the data, in the future allow selection of          # For now, just show all the data, in the future allow selection of
         # a student          # a student
         my ($sname,$sdom) = split(':',$ENV{'form.selected_student'});          my ($sname,$sdom) = split(':',$env{'form.selected_student'});
         if ($sname =~ /^\w*$/ && $sdom =~ /^\w*$/) {          if ($sname =~ /^\w*$/ && $sdom =~ /^\w*$/) {
             $r->print('<h2>'.              $r->print('<h2>'.
                       &mt('Recent activity of [_1]@[_2]',$sname,$sdom).                        &mt('Recent activity of [_1]@[_2]',$sname,$sdom).
Line 540  Compiling student activity data can take Line 539  Compiling student activity data can take
 It may be necessary to reload this page to get the most current information.  It may be necessary to reload this page to get the most current information.
 END  END
             &get_data($r,\%prog_state,$navmap,              &get_data($r,\%prog_state,$navmap,
                       'student:'.$ENV{'form.selected_student'});                        'student:'.$env{'form.selected_student'});
         } else {          } else {
             $r->print('<h2>'.&mt('Unable to process for [_1]@[_2]',              $r->print('<h2>'.&mt('Unable to process for [_1]@[_2]',
                                  $sname,$sdom).'</h2>');                                   $sname,$sdom).'</h2>');

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


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