--- loncom/homework/grades.pm 2006/02/27 19:40:21 1.320
+++ loncom/homework/grades.pm 2006/02/28 02:47:30 1.323
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.320 2006/02/27 19:40:21 albertel Exp $
+# $Id: grades.pm,v 1.323 2006/02/28 02:47:30 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1413,7 +1413,7 @@ SUBJAVASCRIPT
#--- displays the grading box, used in essay type problem and grading by page/sequence
sub gradeBox {
- my ($request,$symb,$uname,$udom,$counter,$partid,$record,$respid) = @_;
+ my ($request,$symb,$uname,$udom,$counter,$partid,$record) = @_;
my $checkIcon = '
';
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb,$udom,$uname);
@@ -1423,7 +1423,6 @@ sub gradeBox {
my $score = ($$record{'resource.'.$partid.'.awarded'} eq '' ?
'' : &compute_points($$record{'resource.'.$partid.'.awarded'},$wgt));
my $result=''."\n";
- $result.='
'.$partid.' - '.$respid.'
';
my $display_part=&get_display_part($partid,undef,$symb);
my %last_resets = &get_last_resets($symb,$env{'request.course.id'},
[$partid]);
@@ -1472,21 +1471,35 @@ sub gradeBox {
''."\n";
$result.=''."\n";
- $result.=&handbackBox($uname,$udom,$counter,$partid,$record,$respid);
+ $result.=&handback_box($symb,$uname,$udom,$counter,$partid,$record);
return $result;
}
-sub handbackBox {
- my ($uname,$udom,$counter,$partid,$record,$respid) = @_;
- my $files=&get_submitted_files($udom,$uname,$partid,$respid,$record);
+
+sub handback_box {
+ my ($symb,$uname,$udom,$counter,$partid,$record) = @_;
+ my ($map,$resid,$url) = &Apache::lonnet::decode_symb($symb);
+ my ($partlist,$handgrade,$responseType) = &response_type($url,$symb);
+ my (@respids);
+ foreach my $part_resp (sort(keys(%$handgrade))) {
+ my ($part,$resp) = split(/_/,$part_resp);
+ if ($part eq $partid) {
+ push @respids,$resp;
+ }
+ }
my $result;
- if (@$files) {
- my $file_counter = 0;
+ foreach my $respid (@respids) {
+ my $prefix = $counter.'_'.$partid.'_'.$respid.'_';
+ my $files=&get_submitted_files($udom,$uname,$partid,$respid,$record);
+ next if (!@$files);
+ my $file_counter = 1;
foreach my $file (@$files) {
- $result.=' Return commented document to student. '."\n";
- $result.='';
- $result.='
';
- }
+ my ($file_disp) = ($file =~ m|.+/(.+)$|);
+ $result.=&mt('Return commented version of [_1] to student.',
+ ''.$file_disp.'');
+ $result.=''."\n";
+ $result.='
';
+ $file_counter++;
+ }
}
return $result;
}
@@ -1914,18 +1927,14 @@ KEYWORDS
my %seen = ();
my @partlist;
my @gradePartRespid;
- for my $part_resp(sort keys(%$handgrade)) {
+ for my $part_resp (sort(keys(%$handgrade))) {
my ($partid,$respid) = split(/_/, $part_resp);
- #next if ($seen{$partid} > 0);
- if ($seen{$partid} > 0) {
- $request->print(&handbackBox($uname,$udom,$counter,$partid,\%record,$respid));
- next;
- }
+ next if ($seen{$partid} > 0);
$seen{$partid}++;
next if ($$handgrade{$part_resp} =~ /:no$/ && $env{'form.lastSub'} =~ /^(hdgrade)$/);
push @partlist,$partid;
push @gradePartRespid,$partid.'.'.$respid;
- $request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record,$respid));
+ $request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record));
}
$result=''."\n";
@@ -2316,25 +2325,21 @@ sub saveHandGrade {
$newrecord{'resource.'.$new_part.'.regrader'}=
"$env{'user.name'}:$env{'user.domain'}";
}
- if ($env{'form.part'.$new_part.'_returndoc1'}) {
- # if multiple files are uploaded names will be 'returndoc2','returndoc3'
-
- my $portfolio_root = &Apache::loncommon::propath($domain,
- $stuname).
- '/userfiles/portfolio';
- $request->print('
'.$portfolio_root.'
');
-
- # my $result=&Apache::lonnet::userfileupload('uploaddoc','',
- # 'portfolio'.$env{'form.currentpath'});
-
- my $file_counter = 1;
- my $respid = $env{'form.respid'};
- while ($env{'form.part'.$new_part.'_returndoc'.$file_counter}) {
- my $fname=$env{'form.returndoc'.$file_counter.'.filename'};
- $newrecord{"resource.$new_part.$respid.handback"} = $env{'form.returndocorig'.$file_counter};
- $request->print("
".$fname." will be the uploaded file name");
- $request->print("Will upload document".$env{'form.returndocorig'.$file_counter});
- $file_counter++;
+ my ($partlist,$handgrade,$responseType) = &response_type($url,$symb);
+ foreach my $part_resp (sort(keys(%$handgrade))) {
+ my ($part_id, $resp_id) = split(/_/,$part_resp);
+ &Apache::lonnet::logthis('form.'.$newflg.'_'.$part_resp.'_returndoc1');
+ &Apache::lonnet::logthis("new part is $new_part and partid is $part_id");
+ if (($env{'form.'.$newflg.'_'.$part_resp.'_returndoc1'}) && ($new_part == $part_id)) {
+ # if multiple files are uploaded names will be 'returndoc2','returndoc3'
+ my $file_counter = 1;
+ while ($env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter}) {
+ my $fname=$env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter.'.filename'};
+ $newrecord{"resource.$new_part.$resp_id.handback"} = $env{'form.returndocorig'.$file_counter};
+ $request->print("
".$fname." will be the uploaded file name");
+ $request->print("Will upload document".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter});
+ $file_counter++;
+ }
}
}
@@ -2374,6 +2379,7 @@ sub saveHandGrade {
}
return ('',$pts,$wgt);
}
+
sub get_submitted_files {
my ($udom,$uname,$partid,$respid,$record) = @_;
my @files;
@@ -2388,6 +2394,7 @@ sub get_submitted_files {
}
return (\@files);
}
+
# ----------- Provides number of tries since last reset.
sub get_num_tries {
my ($record,$last_reset,$part) = @_;