--- loncom/homework/response.pm	2008/12/07 23:40:57	1.209
+++ loncom/homework/response.pm	2009/03/06 16:13:29	1.211
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # various response type definitons response definition
 #
-# $Id: response.pm,v 1.209 2008/12/07 23:40:57 www Exp $
+# $Id: response.pm,v 1.211 2009/03/06 16:13:29 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -239,40 +239,26 @@ sub meta_stores_write {
 		      "></stores>\n";
 }
 
-sub mandatory_part_meta {
 =pod
 
-=item meta_part_order
+=item mandatory_part_meta()
 
 Autogenerate metadata for mandatory
-input (from RAT or lonparmset) and 
+input (from RAT or lonparmset) and
 output (to lonspreadsheet)
 of each part
-#
-    return
-   &meta_parameter_write('opendate','date_start','',
-                         'Opening Date').
-   &meta_parameter_write('duedate','date_end','',
-                         'Due Date').
-   &meta_parameter_write('answerdate','date_start','',
-                         'Show Answer Date').
-   &meta_parameter_write('weight','int_zeropos','',
-                         'Available Points').
-   &meta_parameter_write('maxtries','int_pos','',
-                         'Maximum Number of Tries').
-	&meta_package_write('part').
-        &meta_stores_write('solved','string',
-			   'Problem Status').
-        &meta_stores_write('tries','int_zeropos',
-			   'Number of Attempts').
-        &meta_stores_write('awarded','float',
-			   'Partial Credit Factor');
 
 Note: responseid-specific data 'submission' and 'awarddetail'
 not available to spreadsheet -> skip here
 
 =cut
 
+
+sub mandatory_part_meta {
+    return &meta_package_write('part').
+           &meta_stores_write('solved','string','Problem Status').
+           &meta_stores_write('tries','int_zeropos','Number of Attempts').
+           &meta_stores_write('awarded','float','Partial Credit Factor');
 }
 
 sub meta_part_order {
@@ -916,7 +902,7 @@ sub showallfoils {
 
 =pod
 
-=item &getresponse($offset,$resulttype);
+=item &getresponse();
 
 Retreives the current submitted response, helps out in the case of
 scantron mode.
@@ -962,13 +948,17 @@ sub getresponse {
 	my $id    = $Apache::inputtags::response[-1];
 	
 	my $line;
+	my $startline = $env{'form.scantron_questnum_start.'.$part.'.'.$id};
+        if (!$startline) {
+            $startline = $Apache::lonxml::counter;
+        }
 	for ($line = 0; $line < $lines; $line++) {
-	    my $theline = $Apache::lonxml::counter+$offset-1+$line;
+            my $theline = $startline+$offset-1+$line;
 	    $response = $env{"scantron.$theline.answer"};
 	    if ((defined($response)) && ($response ne "") && ($response ne " ")) {
 		last;
 	    }
-	    
+ 
 	}
 
 	# save bubbled letter for later
@@ -1020,7 +1010,7 @@ sub repetition {
 
 =pod
 
-=item &scored_response($part_id,$response_id);
+=item &scored_response();
 
 Sets the results hash elements
 
@@ -1290,7 +1280,7 @@ sub check_status {
 
 =pod
 
-=item setup_prior_tries_hash($func,$data)
+=item setup_prior_tries_hash()
 
   Foreach each past .submission $func is called with 3 arguments
      - the mode to set things up for (currently always 'grade')
@@ -1335,6 +1325,4 @@ __END__
  
 =pod
 
-=back
-
 =cut