--- loncom/homework/grades.pm 2001/04/17 21:07:38 1.6
+++ loncom/homework/grades.pm 2001/07/26 15:50:25 1.9
@@ -1,5 +1,6 @@
# The LON-CAPA Grading handler
# 2/9,2/13 Guy Albertelli
+# 6/8 Gerd Kortemeyer
package Apache::grades;
use strict;
@@ -26,12 +27,22 @@ sub moreinfo {
}
-#FIXME - needs to be much smarter
+#FIXME - needs to handle multiple matches
sub finduser {
my ($name) = @_;
+ my $domain = '';
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
";
+ 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 {
return ($ENV{'user.name'},$ENV{'user.domain'});
}
@@ -73,8 +84,7 @@ sub viewstudentgrade {
my ($stuname,$domain) = split(/:/,$student);
- my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname,
- &Apache::lonnet::homeserver($stuname,$domain));
+ my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$stuname);
$result.="