--- loncom/homework/grades.pm 2004/02/09 22:16:32 1.173 +++ loncom/homework/grades.pm 2004/02/24 23:22:24 1.177 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.173 2004/02/09 22:16:32 albertel Exp $ +# $Id: grades.pm,v 1.177 2004/02/24 23:22:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -526,18 +526,28 @@ sub verifyreceipt { my ($string,$contents,$matches) = ('','',0); my (undef,undef,$fullname) = &getclasslist('all','0'); - + + my $receiptparts=0; + if ($ENV{"course.$courseid.receiptalg"} eq 'receipt2') { $receiptparts=1; } + my $parts=['0']; + if ($receiptparts) { ($parts)=&response_type($url,$symb); } + $request->print("got Parts ".join(':',@$parts)); foreach (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) { my ($uname,$udom)=split(/\:/); - if ($receipt eq - &Apache::lonnet::ireceipt($uname,$udom,$courseid,$symb)) { - $contents.='<tr bgcolor="#ffffe6"><td> '."\n". - '<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom. - '\')"; TARGET=_self>'.$$fullname{$_}.'</a> </td>'."\n". - '<td> '.$uname.' </td>'. - '<td> '.$udom.' </td></tr>'."\n"; - - $matches++; + foreach my $part (@$parts) { + if ($receipt eq &Apache::lonnet::ireceipt($uname,$udom,$courseid,$symb,$part)) { + $contents.='<tr bgcolor="#ffffe6"><td> '."\n". + '<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom. + '\')"; TARGET=_self>'.$$fullname{$_}.'</a> </td>'."\n". + '<td> '.$uname.' </td>'. + '<td> '.$udom.' </td>'; + if ($receiptparts) { + $contents.='<td> '.$part.' </td>'; + } + $contents.='</tr>'."\n"; + + $matches++; + } } } if ($matches == 0) { @@ -550,8 +560,11 @@ sub verifyreceipt { '<table border="0"><tr bgcolor="#e6ffff">'."\n". '<td><b> Fullname </b></td>'."\n". '<td><b> Username </b></td>'."\n". - '<td><b> Domain </b></td></tr>'."\n". - $contents. + '<td><b> Domain </b></td>'; + if ($receiptparts) { + $string.='<td> Problem Part </td>'; + } + $string.='</tr>'."\n".$contents. '</table></td></tr></table>'."\n"; } return $string.&show_grading_menu_form($symb,$url); @@ -3452,34 +3465,28 @@ sub scantron_selectphase { $default_form_data <table width="100%" border="0"> <tr bgcolor="#e6ffff"> - <td> - <b>Specify file location and which Folder/Sequence to grade</b> + <td colspan="2"> + <b>Specify file and which Folder/Sequence to grade</b> </td> </tr> <tr bgcolor="#ffffe6"> - <td> - Sequence to grade: $sequence_selector - </td> + <td> Sequence to grade: </td><td> $sequence_selector </td> </tr> <tr bgcolor="#ffffe6"> - <td> - Filename of scoring office file: $file_selector - </td> + <td> Filename of scoring office file: </td><td> $file_selector </td> </tr> <tr bgcolor="#ffffe6"> - <td> - Format of data file: $format_selector - </td> + <td> Format of data file: </td><td> $format_selector </td> </tr> <tr bgcolor="#ffffe6"> <td> <!-- FIXME this is lazy, a single parse of the set should let me know what this is --> - Last line to expect an answer on: + Last line to expect an answer on: </td><td> <input type="text" name="scantron_maxbubble" /> </td> </tr> <tr bgcolor="#ffffe6"> - <td> + <td colspan="2"> <input type="submit" value="Validate Scantron Records" /> </td> </tr> @@ -3500,13 +3507,36 @@ SCANTRONFORM <table width="100%" border="0"> <tr bgcolor="#e6ffff"> <td> - Specify a Scantron data file to upload. + <b>Specify a Scantron data file to upload.</b> </td> </tr> <tr bgcolor="#ffffe6"> <td> SCANTRONFORM - &scantron_upload_scantron_data($r); + my $default_form_data=&defaultFormData(&get_symb_and_url($r,1)); + my $cdom= $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; + my $cnum= $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; + $r->print(<<UPLOAD); + <script type="text/javascript" language="javascript"> + function checkUpload(formname) { + if (formname.upfile.value == "") { + alert("Please use the browse button to select a file from your local directory."); + return false; + } + formname.submit(); + } + </script> + + <form enctype='multipart/form-data' action='/adm/grades' name='rules' method='post'> + $default_form_data + <input name='courseid' type='hidden' value='$cnum' /> + <input name='domainid' type='hidden' value='$cdom' /> + <input name='command' value='scantronupload_save' type='hidden' /> + File to upload:<input type="file" name="upfile" size="50" /> + <br /> + <input type="button" onClick="javascript:checkUpload(this.form);" value="Upload Scantron Data" /> + </form> +UPLOAD $r->print(<<SCANTRONFORM); </td> @@ -3826,7 +3856,7 @@ sub scantron_getfile { } else { $scanlines{'skipped'}=[(split("\n",$lines,-1))]; } - my @tmp=&Apache::lonnet::dump('scantrondata',$cdom,$cname); + my @tmp=&Apache::lonnet::dump('nohist_scantrondata',$cdom,$cname); if ($tmp[0] =~ /^(error:|no_such_host)/) { @tmp=(); } my %scan_data = @tmp; return (\%scanlines,\%scan_data); @@ -3858,7 +3888,7 @@ sub scantron_putfile { &lonnet_putfile(join("\n",@{$scanlines->{'skipped'}}), $prefix.'skipped_'. $ENV{'form.scantron_selectfile'}); - &Apache::lonnet::put('scantrondata',$scan_data,$cdom,$cname); + &Apache::lonnet::put('nohist_scantrondata',$scan_data,$cdom,$cname); } sub scantron_get_line { @@ -3975,7 +4005,7 @@ sub scantron_get_correction { 'scantron_username','scantron_domain')); $r->print(": <input type='text' name='scantron_username' value='' />"); $r->print("\n@". - &Apache::loncommon::select_dom_form(undef,'scantron_domain')); + &Apache::loncommon::select_dom_form($ENV{'request.role..domain'},'scantron_domain')); $r->print('</li>'); } elsif ($error eq 'doublebubble') { @@ -4232,10 +4262,15 @@ sub scantron_upload_scantron_data_save { $r->print(&Apache::lonnet::finishuserfileupload($ENV{'form.courseid'}, $ENV{'form.domainid'}, $home,'upfile',$fname)); - $r->print('<br /><form action="/adm/grades" method="post">'."\n". - '<input type="hidden" name="command" value="scantronupload" />'."\n". - '<input type="submit" name="submit" value="Do Another Upload" />'."\n". - '</form>'."\n"); + my ($symb,$url)=&get_symb_and_url($r); + if ($symb) { + $r->print(&show_grading_menu_form(&get_symb_and_url($r))); + } else { + $r->print('<br /><form action="/adm/grades" method="post">'."\n". + '<input type="hidden" name="command" value="scantronupload" />'."\n". + '<input type="submit" name="submit" value="Do Another Upload" />'."\n". + '</form>'."\n"); + } return ''; }