# The LON-CAPA Grading handler # 2/9,2/13 Guy Albertelli package Apache::grades; use strict; use Apache::style; use Apache::lonxml; use Apache::lonnet; use Apache::loncommon; use Apache::lonhomework; use Apache::Constants qw(:common); sub moreinfo { my ($request,$reason) = @_; $request->print("Unable to process request: $reason"); $request->print('
'); } #FIXME - needs to be much smarter sub finduser { my ($name) = @_; return ($name,$ENV{'user.domain'}); } sub submission { my ($request) = @_; my $url=$ENV{'form.url'}; $url=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; if ($ENV{'form.student'} eq '') { &moreinfo($request,"Need student login id"); return ''; } my ($uname,$udom) = &finduser($ENV{'form.student'}); if ($uname eq '') { &moreinfo($request,"Unable to find student"); return ''; } my $symb=&Apache::lonnet::symbread($url); if ($symb eq '') { $request->print("Unable to handle ambiguous references:$url:."); return ''; } my $home=&Apache::lonnet::homeserver($uname,$udom); my $answer=&Apache::loncommon::get_previous_attempt($symb,$uname,$udom,$home, $ENV{'request.course.id'}); my $result="