--- loncom/homework/grades.pm	2016/10/14 16:47:25	1.738
+++ loncom/homework/grades.pm	2017/07/02 16:50:30	1.741
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.738 2016/10/14 16:47:25 raeburn Exp $
+# $Id: grades.pm,v 1.741 2017/07/02 16:50:30 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -293,7 +293,7 @@ sub reset_caches {
     }
 
     sub scantron_partids_tograde {
-        my ($resource,$cid,$uname,$udom,$check_for_randomlist,$bubbles_per_row) = @_;
+        my ($resource,$cid,$uname,$udom,$check_for_randomlist,$bubbles_per_row,$scancode) = @_;
         my (%analysis,@parts);
         if (ref($resource)) {
             my $symb = $resource->symb();
@@ -301,6 +301,13 @@ sub reset_caches {
             if ($check_for_randomlist) {
                 $add_to_form = { 'check_parts_withrandomlist' => 1,};
             }
+            if ($scancode) {
+                if (ref($add_to_form) eq 'HASH') {
+                    $add_to_form->{'code_for_randomlist'} = $scancode;
+                } else {
+                    $add_to_form = { 'code_for_randomlist' => $scancode,};
+                }
+            }
             my $analyze = 
                 &get_analyze($symb,$uname,$udom,undef,$add_to_form,
                              undef,undef,undef,$bubbles_per_row);
@@ -3798,7 +3805,7 @@ sub viewgrades {
                     $result .= &mt('There are no students in section(s) [_1] with enrollment status [_2] to modify or grade.',
                                    $section_display,$stu_status);
                 } elsif (grep(/^none$/,@groups)) {
-                    $result .= &mt('There are no students in section(s) [_1] nd no group with enrollment status [_2] to modify or grade.',
+                    $result .= &mt('There are no students in section(s) [_1] and no group with enrollment status [_2] to modify or grade.',
                                    $section_display,$stu_status);
                 } else {
                     $result .= &mt('There are no students in section(s) [_1] and group(s) [_2] with enrollment status [_3] to modify or grade.',
@@ -8601,9 +8608,14 @@ SCANTRONFORM
             }
             if ((exists($grader_randomlists_by_symb{$ressymb})) ||
                 (ref($grader_partids_by_symb{$ressymb}) ne 'ARRAY')) {
+                my $currcode;
+                if (exists($grader_randomlists_by_symb{$ressymb})) {
+                    $currcode = $scancode;
+                }
                 my ($analysis,$parts) =
                     &scantron_partids_tograde($resource,$env{'request.course.id'},
-                                              $uname,$udom,undef,$bubbles_per_row);
+                                              $uname,$udom,undef,$bubbles_per_row,
+                                              $currcode);
                 $partids_by_symb{$ressymb} = $parts;
             } else {
                 $partids_by_symb{$ressymb} = $grader_partids_by_symb{$ressymb};
@@ -9258,10 +9270,14 @@ sub checkscantron_results {
             my $ressymb = $resource->symb();
             if ((exists($grader_randomlists_by_symb{$ressymb})) ||
                 (ref($grader_partids_by_symb{$ressymb}) ne 'ARRAY')) {
+                my $currcode;
+                if (exists($grader_randomlists_by_symb{$ressymb})) {
+                    $currcode = $scancode;
+                }
                 (my $analysis,$parts) =
                     &scantron_partids_tograde($resource,$env{'request.course.id'},
                                               $username,$domain,undef,
-                                              $bubbles_per_row);
+                                              $bubbles_per_row,$currcode);
             } else {
                 $parts = $grader_partids_by_symb{$ressymb};
             }
@@ -9737,7 +9753,8 @@ sub substatus_options {
                                       'queued'    => 'in grading queue',
                                       'graded'    => 'with ungraded submissions',
                                       'incorrect' => 'with incorrect submissions',
-                                      'all'       => 'with any status');
+                                      'all'       => 'with any status',
+                                      );
 }
 
 sub reset_perm {