--- loncom/homework/grades.pm 2002/05/15 23:47:49 1.24
+++ loncom/homework/grades.pm 2002/06/24 21:05:12 1.30
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.24 2002/05/15 23:47:49 albertel Exp $
+# $Id: grades.pm,v 1.30 2002/06/24 21:05:12 ng Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -29,6 +29,9 @@
# 6/8 Gerd Kortemeyer
# 7/26 H.K. Ng
# 8/20 Gerd Kortemeyer
+# Year 2002
+# June 2002 H.K. Ng
+#
package Apache::grades;
use strict;
@@ -83,18 +86,18 @@ sub verifyreceipt {
$matches++;
}
}
- $request->print('
'.$matches.' match(es)
');
+ $request->printf('
'.$matches." match%s
",$matches <= 1 ? '' : 'es');
}
return '';
}
-sub listStudents {
+sub receiptInput {
my ($request) = shift;
my $cdom=$ENV{"course.$ENV{'request.course.id'}.domain"};
my $cnum=$ENV{"course.$ENV{'request.course.id'}.num"};
my $hostver=unpack("%32C*",$Apache::lonnet::perlvar{'lonHostID'});
$request->print(<Verify a Submission Receipt Issued by this Server
+
Verify a Submission Receipt Issued by this Server
');
+ return '';
+}
+
+sub listStudents {
+ my ($request) = shift;
+ my $cdom=$ENV{"course.$ENV{'request.course.id'}.domain"};
+ my $cnum=$ENV{"course.$ENV{'request.course.id'}.num"};
+
$request->print(<
-
Show Student Submissions on Assessment
-
-
Username
Domain
Name
+
Show Student Submissions on Assessment
+
+
+
+
Resource: $ENV{'form.url'}
+
Username
Name
Domain
+
View Problem
Submissions
Action
ENDTABLEST
my (%classlist) = &getclasslist($cdom,$cnum,'0');
foreach my $student ( sort(@{ $classlist{'allids'} }) ) {
my ($sname,$sdom) = split(/:/,$student);
- my $reply=&Apache::lonnet::reply('get:'.$sdom.':'.$sname.
- ':environment:lastname&generation&firstname&middlename',
- &Apache::lonnet::homeserver($sname,$sdom));
- #print "reply=$reply ";
- my (@nameparts) = split /&/,$reply;
-# my $sfullname = $Apache::lonnet::unescape($nameparts[0]);
-
+ my %name=&Apache::lonnet::get('environment', ['lastname','generation',
+ 'firstname','middlename'],
+ $sdom,$sname);
+ my $fullname;
+ my ($tmp) = keys(%name);
+ if ($tmp !~ /^(con_lost|error|no_such_host)/i) {
+ $fullname=$name{'lastname'}.$name{'generation'};
+ if ($fullname =~ /[^\s]+/) { $fullname.=', '; }
+ $fullname.=$name{'firstname'}.' '.$name{'middlename'};
+ }
if ( $Apache::grades::viewgrades eq 'F' ) {
- $request->print("\n".'
';
return $result;
}
#FIXME need to look at the meatdata spec on what type of data to accept and provide an
@@ -306,30 +339,120 @@ sub submission {
$symb=&Apache::lonnet::symbread($url);
}
if ($symb eq '') { $request->print("Unable to handle ambiguous references:$url:."); return ''; }
- my $answer=&Apache::loncommon::get_previous_attempt($symb,$uname,$udom,
- $ENV{'request.course.id'});
- my $result="
Submission Record
$uname:$udom for $url ".$answer;
- my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
+
+ my $result='
Submission Record
';
+ $result.='
Username: '.$uname.'
Fullname: '.$ENV{'form.fullname'}.'
Domain: '.$udom.'
';
+ $result.='
Resource: '.$url.'
';
+ if ($ENV{'form.vProb'} eq 'yes') {
+ my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
$ENV{'request.course.id'});
- $result.="Student's view of the problem: $rendered Correct answer: ";
+ my $companswer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,
+ $ENV{'request.course.id'});
+ $result.='
'."\n";
+ return $result;
+}
+
+sub viewgrades {
+ my ($request) = @_;
+ my $result='';
+ #get resource reference
+ my ($symb,$url)=&get_symb_and_url($request);
+ if (!$symb) {return '';}
#get classlist
my ($cdom,$cnum) = split(/_/,$ENV{'request.course.id'});
#print "Found $cdom:$cnum ";
@@ -338,9 +461,9 @@ sub viewgrades {
my $cellclr = '"#ffffcc"';
#get list of parts for this problem
- my (@parts) = &getpartlist($url);
+ my (@parts) = sort(&getpartlist($url));
- $request->print ("