version 1.6, 2001/04/17 21:07:38
|
version 1.9, 2001/07/26 15:50:25
|
Line 1
|
Line 1
|
# The LON-CAPA Grading handler |
# The LON-CAPA Grading handler |
# 2/9,2/13 Guy Albertelli |
# 2/9,2/13 Guy Albertelli |
|
# 6/8 Gerd Kortemeyer |
|
|
package Apache::grades; |
package Apache::grades; |
use strict; |
use strict; |
Line 26 sub moreinfo {
|
Line 27 sub moreinfo {
|
} |
} |
|
|
|
|
#FIXME - needs to be much smarter |
#FIXME - needs to handle multiple matches |
sub finduser { |
sub finduser { |
my ($name) = @_; |
my ($name) = @_; |
|
my $domain = ''; |
|
|
if ( $Apache::grades::viewgrades eq 'F' ) { |
if ( $Apache::grades::viewgrades eq 'F' ) { |
return ($name,$ENV{'user.domain'}); |
#get classlist |
|
my ($cdom,$cnum) = split(/_/,$ENV{'request.course.id'}); |
|
my $chome=$ENV{"course.$ENV{'request.course.id'}.home"}; |
|
#print "Found $cdom:$cnum:$chome<br />"; |
|
my (%classlist) = &getclasslist($cdom,$cnum,$chome,'0'); |
|
foreach my $student ( sort(@{ $classlist{'allids'} }) ) { |
|
my ($posname,$posdomain) = split(/:/,$student); |
|
if ($posname =~ $name) { $name=$posname; $domain=$posdomain; last; } |
|
} |
|
return ($name,$domain); |
} else { |
} else { |
return ($ENV{'user.name'},$ENV{'user.domain'}); |
return ($ENV{'user.name'},$ENV{'user.domain'}); |
} |
} |
Line 73 sub viewstudentgrade {
|
Line 84 sub viewstudentgrade {
|
|
|
my ($stuname,$domain) = split(/:/,$student); |
my ($stuname,$domain) = split(/:/,$student); |
|
|
my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname, |
my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname); |
&Apache::lonnet::homeserver($stuname,$domain)); |
|
|
|
$result.="<tr><td>$stuname</td><td>$domain</td>\n"; |
$result.="<tr><td>$stuname</td><td>$domain</td>\n"; |
foreach my $part (@parts) { |
foreach my $part (@parts) { |
Line 115 sub setstudentgrade {
|
Line 125 sub setstudentgrade {
|
|
|
my ($stuname,$domain) = split(/:/,$student); |
my ($stuname,$domain) = split(/:/,$student); |
|
|
my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname, |
my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname); |
&Apache::lonnet::homeserver($stuname,$domain)); |
|
my %newrecord; |
my %newrecord; |
|
|
foreach my $part (@parts) { |
foreach my $part (@parts) { |
Line 152 sub setstudentgrade {
|
Line 162 sub setstudentgrade {
|
} |
} |
if ( scalar(keys(%newrecord)) > 0 ) { |
if ( scalar(keys(%newrecord)) > 0 ) { |
$newrecord{"resource.regrader"}="$ENV{'user.name'}:$ENV{'user.domain'}"; |
$newrecord{"resource.regrader"}="$ENV{'user.name'}:$ENV{'user.domain'}"; |
&Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$stuname, |
&Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$stuname); |
&Apache::lonnet::homeserver($stuname,$domain)); |
|
$result.="Stored away ".scalar(keys(%newrecord))." elements.<br />\n"; |
$result.="Stored away ".scalar(keys(%newrecord))." elements.<br />\n"; |
} |
} |
return $result; |
return $result; |
Line 168 sub submission {
|
Line 177 sub submission {
|
if ($uname eq '') { &moreinfo($request,"Unable to find student"); return ''; } |
if ($uname eq '') { &moreinfo($request,"Unable to find student"); return ''; } |
my $symb=&Apache::lonnet::symbread($url); |
my $symb=&Apache::lonnet::symbread($url); |
if ($symb eq '') { $request->print("Unable to handle ambiguous references:$url:."); return ''; } |
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, |
my $answer=&Apache::loncommon::get_previous_attempt($symb,$uname,$udom,$home, |
|
$ENV{'request.course.id'}); |
$ENV{'request.course.id'}); |
my $result="<h2> Submission Record </h2> $uname:$udom for $url".$answer; |
my $result="<h2> Submission Record </h2> $uname:$udom for $url".$answer; |
return $result; |
return $result; |