--- loncom/homework/grades.pm 2013/06/16 16:59:29 1.691 +++ loncom/homework/grades.pm 2013/07/15 16:13:12 1.694 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.691 2013/06/16 16:59:29 raeburn Exp $ +# $Id: grades.pm,v 1.694 2013/07/15 16:13:12 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -736,7 +736,7 @@ sub most_similar { sub initialverifyreceipt { my ($request,$symb) = @_; &commonJSfunctions($request); - return '
'. + return ''. &Apache::lonnet::recprefix($env{'request.course.id'}). '-'. ''."\n". @@ -5513,7 +5513,7 @@ sub scantron_selectphase { &Apache::lonpickcode::code_list($r,2); - $r->print('
'. + $r->print('
'. $default_form_data."\n". &Apache::loncommon::start_data_table('LC_scantron_action')."\n". &Apache::loncommon::start_data_table_header_row()."\n". @@ -7431,6 +7431,7 @@ used to fill in the scantron_questions f startline - Reference to hash where key is question number (0 is first) and key is number of first bubble line for current student or code-based randompick and/or randomorder. + =cut @@ -8065,7 +8066,7 @@ sub scantron_validate_missingbubbles { my $max_bubble=&scantron_get_maxbubble(\$nav_error,\%scantron_config); if ($nav_error) { $r->print(&navmap_errormsg()); - return ''; + return(1,$currentphase); } if (!$max_bubble) { $max_bubble=2**31; } @@ -8188,7 +8189,7 @@ sub scantron_process_students { } my $map=$navmap->getResourceByUrl($sequence); my ($randomorder,$randompick,@master_seq,%symb_to_resource,%grader_partids_by_symb, - %grader_randomlists_by_symb,%orderedforcode); + %grader_randomlists_by_symb); if (ref($map)) { $randomorder = $map->randomorder(); $randompick = $map->randompick(); @@ -8340,6 +8341,13 @@ SCANTRONFORM return ''; # Why return ''? Beats me. } + if (($scancode) && ($randomorder || $randompick)) { + my $parmresult = + &Apache::lonparmset::storeparm_by_symb($symb, + '0_examcode',2,$scancode, + 'string_examcode',$uname, + $udom); + } $completedstudents{$uname}={'line'=>$line}; if ($env{'form.verifyrecord'}) { my $lastpos = $env{'form.scantron_maxbubble'}*$scantron_config{'Qlength'}; @@ -8871,8 +8879,8 @@ sub checkscantron_results { my $scan_record= &Apache::grades::scantron_parse_scanline($line,$i,\%scantron_config, $scan_data); - unless ($uname=&Apache::grades::scantron_find_student($scan_record,$scan_data, - \%idmap,$i)) { + unless ($uname=&scantron_find_student($scan_record,$scan_data, + \%idmap,$i)) { &Apache::grades::scantron_add_delay(\@delayqueue,$line, 'Unable to find a student that matches',1); next;