version 1.4, 2004/05/04 14:17:18
|
version 1.16, 2013/02/01 18:46:37
|
Line 33 use Apache::Constants qw(:common);
|
Line 33 use Apache::Constants qw(:common);
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::grades(); |
use Apache::grades(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::lonnet; |
|
|
sub get_code_freq { |
sub get_code_freq { |
my ($r)=@_; |
my ($r)=@_; |
my %codes; |
my %codes; |
my %scantron_config= |
my %scantron_config= |
&Apache::grades::get_scantron_config($ENV{'form.scantron_format'}); |
&Apache::grades::get_scantron_config($env{'form.scantron_format'}); |
$r->rflush(); |
$r->rflush(); |
my ($scanlines,$scan_data)=&Apache::grades::scantron_getfile(); |
my ($scanlines,$scan_data)=&Apache::grades::scantron_getfile(); |
for (my $i=0;$i<=$scanlines->{'count'};$i++) { |
for (my $i=0;$i<=$scanlines->{'count'};$i++) { |
my $line=&Apache::grades::scantron_get_line($scanlines,$i); |
my $line=&Apache::grades::scantron_get_line($scanlines,$scan_data,$i); |
if ($line=~/^[\s\cz]*$/) { next; } |
if ($line=~/^[\s\cz]*$/) { next; } |
my $scan_record= |
my $scan_record= |
&Apache::grades::scantron_parse_scanline($line,$i, |
&Apache::grades::scantron_parse_scanline($line,$i, |
Line 60 sub handler {
|
Line 61 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
$r->print(<<ENDDOCUMENT); |
|
<html> |
|
<head> |
|
<title>The LearningOnline Network with CAPA</title> |
|
</head> |
|
ENDDOCUMENT |
|
|
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['curCODE','scantron_selectfile', |
['curCODE','scantron_selectfile', |
'form','scantron_format', |
'form','scantron_format','symb', |
'scantron_CODElist']); |
'scantron_CODElist','command']); |
|
|
if (!($ENV{'request.course.id'}) && |
if (!($env{'request.course.id'}) && |
(&Apache::lonnet::allowed('usc',$ENV{'request.course.id'}))) { |
(&Apache::lonnet::allowed('usc',$env{'request.course.id'}))) { |
$r->print('<body>Access not allowed.</body>'); |
$r->print(&Apache::loncommon::start_page(). |
|
'<p class="LC_error">'.&mt('Access not allowed.').'</p>'. |
|
&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
if ($env{'form.command'} eq 'codelist') { |
|
&code_list($r); |
|
$r->print(&Apache::grades::show_grading_menu_form($env{'form.symb'}, |
|
$env{'form.url'})); |
|
} elsif ($env{'form.command'} eq 'showcodes') { |
|
&show_codes($r); |
|
} else { |
|
&picking_a_code($r); |
|
} |
|
$r->print(&Apache::loncommon::end_page()); |
|
return OK; |
|
} |
|
|
|
sub code_list { |
|
my ($r,$context)=@_; |
|
# $context = 0 Print page header and enclosing table |
|
# $context = 1 No page header, print enclosing table |
|
# $context = 2 No page header, no enclosing table |
|
my $table_head; |
|
my $extra_css; |
|
if (!$context) { |
|
$r->print(&Apache::loncommon::start_page("View CODEs",undef, |
|
{'no_nav_bar' => 1})); |
|
$table_head = &mt('Select a set of saved CODEs to view.'); |
|
} elsif ($context eq 1) { |
|
$table_head = &mt('Select another set of saved CODEs to view.'); |
|
} elsif ($context eq 2) { |
|
$table_head = &mt('Select a set of saved CODEs to view.'); |
|
$extra_css = 'LC_scantron_action'; |
|
} |
|
$r->print("<form method='post' action='/adm/pickcode' name='pickcode'>"); |
|
$r->print(' |
|
'.&Apache::loncommon::start_data_table($extra_css).' |
|
'.&Apache::loncommon::start_data_table_header_row()); |
|
$r->print('<th>'); |
|
$r->print($table_head); |
|
$r->print('</th>'); |
|
$r->print(' |
|
'.&Apache::loncommon::end_data_table_header_row().' |
|
'.&Apache::loncommon::start_data_table_row()); |
|
$r->print('<td>'); |
|
$r->print("<input type='submit' name='submit' value='".&mt("View:")."' /> "); |
|
$r->print(&Apache::grades::scantron_CODElist()); |
|
$r->print('</td>'); |
|
$r->print(' |
|
'.&Apache::loncommon::end_data_table_row().' |
|
'.&Apache::loncommon::end_data_table()); |
|
$r->print("<input type='hidden' name='command' value='showcodes' />"); |
|
$r->print("<input type='hidden' name='symb' value='".$env{'form.symb'}."' />"); |
|
$r->print("<input type='hidden' name='url' value='".$env{'form.url'}."' />"); |
|
$r->print("</form>"); |
|
|
|
} |
|
|
|
sub show_codes { |
|
my ($r)=@_; |
|
$r->print(&Apache::loncommon::start_page("View CODEs",undef, |
|
{'no_nav_bar' => 1})); |
|
my %codes=&Apache::grades::get_codes(); |
|
$r->print("<h2>".$env{'form.scantron_CODElist'}."</h2>"); |
|
$r->print('<pre>'); |
|
foreach my $code (sort(keys(%codes))) { |
|
$r->print($code."\n"); |
|
} |
|
$r->print('</pre>'); |
|
&code_list($r,1); |
|
$r->print(&Apache::grades::show_grading_menu_form($env{'form.symb'}, |
|
$env{'form.url'})); |
|
} |
|
|
$r->print(&Apache::loncommon::bodytag("Selecting a CODE")); |
sub picking_a_code { |
$r->print(<<ENDSCRIPT); |
my ($r)=@_; |
<script> |
my $title = 'Selecting a CODE'; |
|
$r->print(&Apache::loncommon::start_page($title,undef, |
|
{'no_nav_bar' => 1})); |
|
$r->print('<h1>'.&mt($title).'</h1>'); |
|
|
|
$r->print(&Apache::lonhtmlcommon::scripttag(" |
function gochoose(newcode) { |
function gochoose(newcode) { |
opener.document.$ENV{'form.form'}.scantron_CODE_selectedvalue.value=newcode; |
opener.document.$env{'form.form'}.scantron_CODE_selectedvalue.value=newcode; |
var slct=opener.document.$ENV{'form.form'}.scantron_CODE_resolution; |
var slct=opener.document.$env{'form.form'}.scantron_CODE_resolution; |
var i; |
var i; |
for (i=0;i<slct.length;i++) { |
for (i=0;i<slct.length;i++) { |
if (slct[i].value=='use_found') { slct[i].checked=true; } |
if (slct[i].value=='use_found') { slct[i].checked=true; } |
} |
} |
self.close(); |
self.close(); |
} |
} |
</script> |
")); |
ENDSCRIPT |
|
|
|
|
|
$r->print("<p>The CODE on the paper is <tt><b>".$ENV{'form.curCODE'}. |
$r->print( |
"</b></tt>. Please Select a new one.</p>\n".'<form>'); |
'<p>' |
|
.&mt('The CODE on the paper is [_1]. Please select a new one.', |
|
'<tt><b>'.$env{'form.curCODE'}.'</b></tt>') |
|
."</p>\n".'<form action="">' |
|
); |
my %codes=&Apache::grades::get_codes(); |
my %codes=&Apache::grades::get_codes(); |
my %code_freq=&get_code_freq($r); |
my %code_freq=&get_code_freq($r); |
my $num_matches=length($ENV{'form.curCODE'}); |
my $num_matches=length($env{'form.curCODE'}); |
for (my $i=$num_matches;$i>=0;$i--) { |
for (my $i=$num_matches;$i>=0;$i--) { |
my $to_print="<p> CODEs with $i matches</p>"; |
my $to_print = |
$to_print.='<table border="1"><tr><td></td><td>CODE</td><td>exams using this CODE</td>'; |
'<p>'.&mt('CODEs with [_1] matching letters:',$i)."</p>\n" |
|
.&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
|
.'<th> </th>' |
|
.'<th>'.&mt('CODE').'</th>' |
|
.'<th>'.&mt('Bubblesheet Exams using this CODE').'</th>' |
|
.&Apache::loncommon::end_data_table_header_row(); |
|
|
my $print; |
my $print; |
foreach my $code (sort(keys(%codes))) { |
foreach my $code (sort(keys(%codes))) { |
if (&Apache::grades::num_matches($ENV{'form.curCODE'},$code) != $i) { next; } |
if (&Apache::grades::num_matches($env{'form.curCODE'},$code) != $i) { next; } |
$print=1; |
$print=1; |
my ($count,$list); |
my ($count,$list); |
if (!ref($code_freq{$code})) { |
if (!ref($code_freq{$code})) { |
Line 114 ENDSCRIPT
|
Line 192 ENDSCRIPT
|
$count=scalar(@{$code_freq{$code}}); |
$count=scalar(@{$code_freq{$code}}); |
$list=' - '.join(', ',@{$code_freq{$code}}); |
$list=' - '.join(', ',@{$code_freq{$code}}); |
} |
} |
$to_print.='<tr><td>'. |
$to_print .= |
'<input type="button" value="'.&mt('Select'). |
&Apache::loncommon::start_data_table_row() |
'" onClick="gochoose(\''.$code.'\')" /></td>'. |
.'<td><input type="button" value="'.&mt('Select') |
'<td><tt>'.$code.'</tt></td><td>'.$count. |
.'" onclick="gochoose(\''.$code.'\')" /></td>' |
$list.'</td></tr>'; |
.'<td><tt>'.$code.'</tt></td>' |
delete($codes{$code}); |
.'<td>'.$count.$list.'</td>' |
} |
.&Apache::loncommon::end_data_table_row(); |
$to_print.='</table>'; |
delete($codes{$code}); |
if ($print) { $r->print($to_print); } |
} |
|
$to_print .= &Apache::loncommon::end_data_table(); |
|
if ($print) { $r->print($to_print); } |
} |
} |
$r->print('</form></body></html>'); |
$r->print('</form>'); |
return OK; |
|
} |
} |
|
|
1; |
1; |