[LON-CAPA-cvs] cvs: loncom /homework grades.pm

banghart lon-capa-cvs@mail.lon-capa.org
Tue, 28 Feb 2006 02:47:32 -0000


banghart		Mon Feb 27 21:47:32 2006 EDT

  Modified files:              
    /loncom/homework	grades.pm 
  Log:
  	Saving work in progress. Now handles multiple students, multiple
  	parts, multiple response. At least, passes necessary info for 
  	handback of files. Next need to store files, update record with
  	info.
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.322 loncom/homework/grades.pm:1.323
--- loncom/homework/grades.pm:1.322	Mon Feb 27 16:23:52 2006
+++ loncom/homework/grades.pm	Mon Feb 27 21:47:30 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.322 2006/02/27 21:23:52 albertel Exp $
+# $Id: grades.pm,v 1.323 2006/02/28 02:47:30 banghart Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1471,14 +1471,23 @@
         '<input type="hidden" name="aggtries'.$counter.'_'.$partid.'" value="'.
         $aggtries.'" />'."\n";
     $result.='</td></tr></table>'."\n";
-    $result.=&handback_box($uname,$udom,$counter,$partid,$record);
+    $result.=&handback_box($symb,$uname,$udom,$counter,$partid,$record);
     return $result;
 }
 
 sub handback_box {
-    my ($uname,$udom,$counter,$partid,$record) = @_;
+    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;
-    foreach my $respid (undef) {
+    foreach my $respid (@respids) {
 	my $prefix = $counter.'_'.$partid.'_'.$respid.'_';
 	my $files=&get_submitted_files($udom,$uname,$partid,$respid,$record);
 	next if (!@$files);
@@ -1487,8 +1496,8 @@
 	    my ($file_disp) = ($file =~ m|.+/(.+)$|);
 	    $result.=&mt('Return commented version of [_1] to student.',
 			 '<span class="filename">'.$file_disp.'</span>');
-	    $result.='<input type="file"   name="'.$prefix.'_returndoc'.$file_counter.'" />'."\n";
-	    $result.='<input type="hidden" name="'.$prefix.'_origdoc'.$file_counter.'" value="'.$file.'" /><br />';
+	    $result.='<input type="file"   name="'.$prefix.'returndoc'.$file_counter.'" />'."\n";
+	    $result.='<input type="hidden" name="'.$prefix.'origdoc'.$file_counter.'" value="'.$file.'" /><br />';
 	    $file_counter++;
 	}
     }
@@ -2317,19 +2326,18 @@
 		"$env{'user.name'}:$env{'user.domain'}";
 	}
 	my ($partlist,$handgrade,$responseType) = &response_type($url,$symb);
-	my $portfolio_root = &Apache::loncommon::propath($domain,
-        					 $stuname).
-        					'/userfiles/portfolio';
 	foreach my $part_resp (sort(keys(%$handgrade))) {
 	    my ($part_id, $resp_id) = split(/_/,$part_resp);
-            if ($env{'form.'.$part_resp.'_returndoc1'} && ($new_part eq $part_id)) {
+	    &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.'.$part_resp.'_returndoc'.$file_counter}) {
-                    my $fname=$env{'form.returndoc'.$file_counter.'.filename'};
+                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("<br />".$fname." will be the uploaded file name");
-                    $request->print("<font color=\"red\">Will upload document</font>".$env{'form.returndocorig'.$file_counter});
+                    $request->print("<font color=\"red\">Will upload document</font>".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter});
                     $file_counter++;
                 }
             }