![]() ![]() | ![]() |
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: