File:  [LON-CAPA] / loncom / interface / lontrackstudent.pm
Revision 1.1: download - view: text, annotated - select for diffs
Wed Aug 11 18:41:05 2004 UTC (19 years, 10 months ago) by matthew
Branches: MAIN
CVS tags: HEAD
Barely functional student tracking ability.

    1: # The LearningOnline Network with CAPA
    2: #
    3: # $Id: lontrackstudent.pm,v 1.1 2004/08/11 18:41:05 matthew Exp $
    4: #
    5: # Copyright Michigan State University Board of Trustees
    6: #
    7: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
    8: #
    9: # LON-CAPA is free software; you can redistribute it and/or modify
   10: # it under the terms of the GNU General Public License as published by
   11: # the Free Software Foundation; either version 2 of the License, or
   12: # (at your option) any later version.
   13: #
   14: # LON-CAPA is distributed in the hope that it will be useful,
   15: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   17: # GNU General Public License for more details.
   18: #
   19: # You should have received a copy of the GNU General Public License
   20: # along with LON-CAPA; if not, write to the Free Software
   21: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   22: #
   23: # /home/httpd/html/adm/gpl.txt
   24: #
   25: # http://www.lon-capa.org/
   26: #
   27: ###
   28: 
   29: =pod
   30: 
   31: =head1 NAME
   32: 
   33: lontrackstudent
   34: 
   35: =head1 SYNOPSIS
   36: 
   37: Track student progress through course materials
   38: 
   39: =over 4
   40: 
   41: =cut
   42: 
   43: package Apache::lontrackstudent;
   44: 
   45: use strict;
   46: use Apache::Constants qw(:common :http);
   47: use Apache::lonnet();
   48: use Apache::lonlocal;
   49: use Time::HiRes;
   50: 
   51: ###################################################################
   52: ###################################################################
   53: sub get_all_data {}
   54: sub get_student_data {}
   55: sub html_output_student_data {}
   56: sub html_output_class_data {}
   57: 
   58: sub request_data_update {
   59:     my $command = 'prepare activity log';
   60:     my $cid = $ENV{'request.course.id'};
   61:     my $domain = $ENV{'course.'.$cid.'.domain'};
   62:     my $home = $ENV{'course.'.$cid.'.home'};
   63:     my $course = $ENV{'course.'.$cid.'.num'};
   64:     &Apache::lonnet::logthis($command.' '.$course.' '.$domain.' '.$home);
   65:     my $result = &Apache::lonnet::metadata_query($command,$course,$domain,
   66:                                                  [$home]);
   67:     return $result;
   68: }
   69: 
   70: ###################################################################
   71: ###################################################################
   72: 
   73: 
   74: ###################################################################
   75: ###################################################################
   76: sub handler {
   77:     my $r=shift;
   78:     my $c = $r->connection();
   79:     #
   80:     # Check for overloading here and on the course home server
   81:     my $loaderror=&Apache::lonnet::overloaderror($r);
   82:     if ($loaderror) { return $loaderror; }
   83:     $loaderror=
   84:         &Apache::lonnet::overloaderror
   85:         ($r,
   86:          $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
   87:     if ($loaderror) { return $loaderror; }
   88:     #
   89:     # Check for access
   90:     if (! &Apache::lonnet::allowed('vsa',$ENV{'request.course.id'})) {
   91:         $ENV{'user.error.msg'}=
   92:             $r->uri.":vsa:0:0:Cannot student activity for complete course";
   93:         if (! 
   94:             &Apache::lonnet::allowed('vsa',
   95:                                      $ENV{'request.course.id'}.'/'.
   96:                                      $ENV{'request.course.sec'})) {
   97:             $ENV{'user.error.msg'}=
   98:                 $r->uri.":vsa:0:0:Cannot view student activity with given role";
   99:             return HTTP_NOT_ACCEPTABLE;
  100:         }
  101:     }
  102:     #
  103:     # Send the header
  104:     &Apache::loncommon::no_cache($r);
  105:     &Apache::loncommon::content_type($r,'text/html');
  106:     $r->send_http_header;
  107:     if ($r->header_only) { return OK; }
  108:     #
  109:     # Extract form elements from query string
  110:     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
  111:                                             ['selected_student']);
  112:     #
  113:     # Give the LON-CAPA page header
  114:     $r->print('<html><head><title>'.
  115:               &mt('Student Activity').
  116:               "</title></head>\n".
  117:               &Apache::loncommon::bodytag('Student Activity'));
  118:     $r->rflush();
  119:     # 
  120:     # Either print out a menu for them or send them to a report
  121:     &Apache::lonhtmlcommon::clear_breadcrumbs();
  122:     &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/studentactivity',
  123:                                             title=>'Student Activity',
  124:                                             text =>'Student Activity',
  125:                                             faq=>139,
  126:                                             bug=>'instructor interface'});
  127:     #
  128:     # Begin form output
  129:     $r->print('<form name="Statistics" ');
  130:     $r->print('method="post" action="/adm/statistics">');
  131:     $r->rflush();
  132:     $r->print('<h1>'.&mt('View student activity').'</h1>');
  133:     #
  134:     my $result = &request_data_update();
  135:     if (ref($result) eq 'HASH') {
  136:         $result = join(map { $_.'=>'.$result->{$_}; } keys(%$result));
  137:     }
  138:     $r->print('<h2>'.$result.'</h2>');
  139:     #
  140:     if (! exists($ENV{'form.selected_student'})) {
  141:         # Choose a student
  142:         $r->print('If you worked here you would be done by now');
  143:     } else {
  144:         # Show a students activity
  145:         $r->print('I would like to have something to show you but I do not.');
  146:     }
  147:     #
  148:     $r->print("</form>\n");
  149:     $r->print("</body>\n</html>\n");
  150:     $r->rflush();
  151:     #
  152:     return OK;
  153: }
  154: 
  155: 1;
  156: 
  157: #######################################################
  158: #######################################################
  159: 
  160: =pod
  161: 
  162: =back
  163: 
  164: =cut
  165: 
  166: #######################################################
  167: #######################################################
  168: 
  169: __END__
  170: 

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