--- loncom/homework/optionresponse.pm	2015/01/19 15:35:53	1.196
+++ loncom/homework/optionresponse.pm	2015/04/21 12:28:05	1.199
@@ -1,7 +1,7 @@
 # LearningOnline Network with CAPA
 # option list style responses
 #
-# $Id: optionresponse.pm,v 1.196 2015/01/19 15:35:53 goltermann Exp $
+# $Id: optionresponse.pm,v 1.199 2015/04/21 12:28:05 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -128,7 +128,7 @@ sub start_foilgroup {
         maxcheck => 'Enter maximum number students may check (e.g., 3)',
         mincheck => 'Enter minimum number students need to check (e.g., 1)',
     );
-    $result.= (<<ENDTABLE, &Apache::loncommon::insert_folding_button());
+    $result.= sprintf(<<ENDTABLE, &Apache::loncommon::insert_folding_button());
       <tr><td>%s $lt{'sel'}</td>
         <td>
 	  $lt{'add'} <input type="text" name="$Apache::lonxml::curdepth.options" />
@@ -376,8 +376,8 @@ sub end_foilgroup {
 	  }
 	}
 	my $part=$Apache::inputtags::part;
-        my $nonlenient=&grading_is_nonlenient($part);
-	my $id = $Apache::inputtags::response['-1'];
+        my $id = $Apache::inputtags::response['-1'];
+        my $nonlenient=&grading_is_nonlenient($part,$id);
 	my $responsestr=&Apache::lonnet::hash2str(%responsehash);
 	my $gradestr   =&Apache::lonnet::hash2str(%grade);
 	my %previous=&Apache::response::check_for_previous($responsestr,
@@ -492,22 +492,33 @@ sub end_foilgroup {
 }
 
 sub grading_is_nonlenient {
-    my ($part) = @_;
+    my ($part,$id) = @_;
 # Web mode: we are non-lenient unless told otherwise
     my $defaultparm = 'off';
-    my $nonlenient = 0;
+    my $nonlenient = 1;
 # Grading a bubblesheet exam: we are grading lenient unless told otherwise
     if ($Apache::lonhomework::scantronmode) {
         $defaultparm = 'on';
-        $nonlenient = 1;
+        $nonlenient = 0;
     }
     my $lenientparm =
         &Apache::response::get_response_param($part,'lenient',$defaultparm);
+    if ($lenientparm eq 'default') {
+        $lenientparm = $defaultparm;
+    }
+    $lenientparm =
+        &Apache::response::get_response_param($part.'_'.$id,'lenient',$lenientparm);
+    if ($lenientparm eq 'default') {
+        $lenientparm = $defaultparm;
+    }
     if ($lenientparm=~/^0|off|no$/i) {
         $nonlenient = 1;
     } elsif ($lenientparm=~/^1|on|yes$/i) {
         $nonlenient = 0;
     }
+    if (!$nonlenient) {
+        $Apache::inputtags::leniency=1;
+    }
     return $nonlenient;
 }