version 1.235, 2004/12/09 23:53:10
|
version 1.242, 2005/02/07 17:07:58
|
Line 973 sub sub_page_kw_js {
|
Line 973 sub sub_page_kw_js {
|
my $iconpath = $request->dir_config('lonIconsURL'); |
my $iconpath = $request->dir_config('lonIconsURL'); |
&commonJSfunctions($request); |
&commonJSfunctions($request); |
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
|
$docopen=~s/^document\.//; |
$request->print(<<SUBJAVASCRIPT); |
$request->print(<<SUBJAVASCRIPT); |
<script type="text/javascript" language="javascript"> |
<script type="text/javascript" language="javascript"> |
|
|
Line 1689 KEYWORDS
|
Line 1690 KEYWORDS
|
&Apache::lonnet::allowuploaded('/adm/grades',$file); |
&Apache::lonnet::allowuploaded('/adm/grades',$file); |
$lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>'; |
$lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>'; |
} |
} |
|
$lastsubonly.='<br />'; |
} |
} |
$lastsubonly.='<b>Submitted Answer: </b>'. |
$lastsubonly.='<b>Submitted Answer: </b>'. |
&cleanRecord($subval,$responsetype,$symb,$partid, |
&cleanRecord($subval,$responsetype,$symb,$partid, |
Line 3058 sub getSymbMap {
|
Line 3060 sub getSymbMap {
|
my $minder = 0; |
my $minder = 0; |
|
|
# Gather every sequence that has problems. |
# Gather every sequence that has problems. |
my @sequences = $navmap->retrieveResources(undef, sub { shift->is_map(); }, 1); |
my @sequences = $navmap->retrieveResources(undef, sub { shift->is_map(); }, |
|
1,0,1); |
for my $sequence ($navmap->getById('0.0'), @sequences) { |
for my $sequence ($navmap->getById('0.0'), @sequences) { |
if ($navmap->hasResource($sequence, sub { shift->is_problem(); }, 0) ) { |
if ($navmap->hasResource($sequence, sub { shift->is_problem(); }, 0) ) { |
my $title = $minder.'.'.$sequence->compTitle(); |
my $title = $minder.'.'.$sequence->compTitle(); |
Line 3794 sub scantron_parse_scanline {
|
Line 3797 sub scantron_parse_scanline {
|
my $currentquest=substr($questions,0,$$scantron_config{'Qlength'}); |
my $currentquest=substr($questions,0,$$scantron_config{'Qlength'}); |
substr($questions,0,$$scantron_config{'Qlength'})=''; |
substr($questions,0,$$scantron_config{'Qlength'})=''; |
if (length($currentquest) < $$scantron_config{'Qlength'}) { next; } |
if (length($currentquest) < $$scantron_config{'Qlength'}) { next; } |
my @array=split($$scantron_config{'Qon'},$currentquest,-1); |
if ($$scantron_config{'Qon'} eq 'letter') { |
if (length($array[0]) eq $$scantron_config{'Qlength'}) { |
if (!$currentquest || $currentquest eq $$scantron_config{'Qoff'} || |
$record{"scantron.$questnum.answer"}=''; |
$currentquest !~ /^[A-Z]$/) { |
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) { |
$record{"scantron.$questnum.answer"}=''; |
push(@{$record{"scantron.missingerror"}},$questnum); |
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) { |
} |
push(@{$record{"scantron.missingerror"}},$questnum); |
|
} |
|
} else { |
|
$record{"scantron.$questnum.answer"}=$currentquest; |
|
} |
|
} elsif ($$scantron_config{'Qon'} eq 'number') { |
|
if (!$currentquest || $currentquest eq $$scantron_config{'Qoff'} || |
|
$currentquest !~ /^\d$/) { |
|
$record{"scantron.$questnum.answer"}=''; |
|
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) { |
|
push(@{$record{"scantron.missingerror"}},$questnum); |
|
} |
|
} else { |
|
$record{"scantron.$questnum.answer"}= |
|
$alphabet[$currentquest-1]; |
|
} |
} else { |
} else { |
$record{"scantron.$questnum.answer"}=$alphabet[length($array[0])]; |
my @array=split($$scantron_config{'Qon'},$currentquest,-1); |
|
if (length($array[0]) eq $$scantron_config{'Qlength'}) { |
|
$record{"scantron.$questnum.answer"}=''; |
|
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) { |
|
push(@{$record{"scantron.missingerror"}},$questnum); |
|
} |
|
} else { |
|
$record{"scantron.$questnum.answer"}= |
|
$alphabet[length($array[0])]; |
|
} |
|
if (scalar(@array) gt 2) { |
|
push(@{$record{'scantron.doubleerror'}},$questnum); |
|
my @ans=@array; |
|
my $i=length($ans[0]);shift(@ans); |
|
while ($#ans) { |
|
$i+=length($ans[0])+1; |
|
$record{"scantron.$questnum.answer"}.=$alphabet[$i]; |
|
shift(@ans); |
|
} |
|
} |
} |
} |
if (scalar(@array) gt 2) { |
|
push(@{$record{'scantron.doubleerror'}},$questnum); |
|
my @ans=@array; |
|
my $i=length($ans[0]);shift(@ans); |
|
while ($#ans) { |
|
$i+=length($ans[0])+1; |
|
$record{"scantron.$questnum.answer"}.=$alphabet[$i]; |
|
shift(@ans); |
|
} |
|
} |
|
} |
} |
$record{'scantron.maxquest'}=$questnum; |
$record{'scantron.maxquest'}=$questnum; |
return \%record; |
return \%record; |
Line 3977 sub scantron_do_warning {
|
Line 4004 sub scantron_do_warning {
|
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $default_form_data=&defaultFormData($symb,$url); |
my $default_form_data=&defaultFormData($symb,$url); |
$r->print(&scantron_form_start().$default_form_data); |
$r->print(&scantron_form_start().$default_form_data); |
my $warning=&scantron_warning_screen('Validate Records'); |
if ( $ENV{'form.selectpage'} eq '' || |
$r->print(<<STUFF); |
$ENV{'form.scantron_selectfile'} eq '' || |
|
$ENV{'form.scantron_format'} eq '' ) { |
|
$r->print("<p>You have forgetten to specify some information. Please go Back and try again.</p>"); |
|
if ( $ENV{'form.selectpage'} eq '') { |
|
$r->print('<p><font color="red">You have not selected a Sequence to grade</font></p>'); |
|
} |
|
if ( $ENV{'form.scantron_selectfile'} eq '') { |
|
$r->print('<p><font color="red">You have not selected a file that contains the student\'s response data.</font></p>'); |
|
} |
|
if ( $ENV{'form.scantron_format'} eq '') { |
|
$r->print('<p><font color="red">You have not selected a the format of the student\'s response data.</font></p>'); |
|
} |
|
} else { |
|
my $warning=&scantron_warning_screen('Validate Records'); |
|
$r->print(<<STUFF); |
$warning |
$warning |
<input type="submit" name="submit" value="Validate Records" /> |
<input type="submit" name="submit" value="Validate Records" /> |
<input type="hidden" name="command" value="scantron_validate" /> |
<input type="hidden" name="command" value="scantron_validate" /> |
</form> |
|
STUFF |
STUFF |
$r->print("<br />".&show_grading_menu_form($symb,$url)."</body></html>"); |
} |
|
$r->print("</form><br />".&show_grading_menu_form($symb,$url)."</body></html>"); |
return ''; |
return ''; |
} |
} |
|
|
Line 4285 sub scantron_get_correction {
|
Line 4326 sub scantron_get_correction {
|
$r->print(" in scanline $i <pre>". |
$r->print(" in scanline $i <pre>". |
$line."</pre> \n"); |
$line."</pre> \n"); |
} |
} |
|
my $message="<p>The ID on the form is <tt>". |
|
$$scan_record{'scantron.ID'}."</tt><br />\n". |
|
"The name on the paper is ". |
|
$$scan_record{'scantron.LastName'}.",". |
|
$$scan_record{'scantron.FirstName'}."</p>"; |
|
|
$r->print('<input type="hidden" name="scantron_corrections" value="'.$error.'" />'."\n"); |
$r->print('<input type="hidden" name="scantron_corrections" value="'.$error.'" />'."\n"); |
$r->print('<input type="hidden" name="scantron_line" value="'.$i.'" />'."\n"); |
$r->print('<input type="hidden" name="scantron_line" value="'.$i.'" />'."\n"); |
if ($error =~ /ID$/) { |
if ($error =~ /ID$/) { |
Line 4293 sub scantron_get_correction {
|
Line 4340 sub scantron_get_correction {
|
} elsif ($error eq 'duplicateID') { |
} elsif ($error eq 'duplicateID') { |
$r->print("The encoded ID has also been used by a previous paper $arg</p>\n"); |
$r->print("The encoded ID has also been used by a previous paper $arg</p>\n"); |
} |
} |
$r->print("<p>The ID on the form is <tt>". |
$r->print($message); |
$$scan_record{'scantron.ID'}."</tt><br />\n"); |
|
$r->print("The name on the paper is ". |
|
$$scan_record{'scantron.LastName'}.",". |
|
$$scan_record{'scantron.FirstName'}."</p>"); |
|
$r->print("<p>How should I handle this? <br /> \n"); |
$r->print("<p>How should I handle this? <br /> \n"); |
$r->print("\n<ul><li> "); |
$r->print("\n<ul><li> "); |
#FIXME it would be nice if this sent back the user ID and |
#FIXME it would be nice if this sent back the user ID and |
Line 4317 sub scantron_get_correction {
|
Line 4360 sub scantron_get_correction {
|
} |
} |
$r->print("<p>The CODE on the form is <tt>'". |
$r->print("<p>The CODE on the form is <tt>'". |
$$scan_record{'scantron.CODE'}."'</tt><br />\n"); |
$$scan_record{'scantron.CODE'}."'</tt><br />\n"); |
$r->print("<p>The ID on the form is <tt>". |
$r->print($message); |
$$scan_record{'scantron.ID'}."</tt><br />\n"); |
|
$r->print("The name on the paper is ". |
|
$$scan_record{'scantron.LastName'}.",". |
|
$$scan_record{'scantron.FirstName'}."</p>"); |
|
$r->print("<p>How should I handle this? <br /> \n"); |
$r->print("<p>How should I handle this? <br /> \n"); |
$r->print("\n<br /> "); |
$r->print("\n<br /> "); |
my $i=0; |
my $i=0; |
Line 4364 ENDSCRIPT
|
Line 4403 ENDSCRIPT
|
$r->print("<p>There have been multiple bubbles scanned for a some question(s)</p>\n"); |
$r->print("<p>There have been multiple bubbles scanned for a some question(s)</p>\n"); |
$r->print('<input type="hidden" name="scantron_questions" value="'. |
$r->print('<input type="hidden" name="scantron_questions" value="'. |
join(',',@{$arg}).'" />'); |
join(',',@{$arg}).'" />'); |
|
$r->print($message); |
$r->print("<p>Please indicate which bubble should be used for grading</p>"); |
$r->print("<p>Please indicate which bubble should be used for grading</p>"); |
foreach my $question (@{$arg}) { |
foreach my $question (@{$arg}) { |
my $selected=$$scan_record{"scantron.$question.answer"}; |
my $selected=$$scan_record{"scantron.$question.answer"}; |
Line 4371 ENDSCRIPT
|
Line 4411 ENDSCRIPT
|
} |
} |
} elsif ($error eq 'missingbubble') { |
} elsif ($error eq 'missingbubble') { |
$r->print("<p>There have been <b>no</b> bubbles scanned for some question(s)</p>\n"); |
$r->print("<p>There have been <b>no</b> bubbles scanned for some question(s)</p>\n"); |
|
$r->print($message); |
$r->print("<p>Please indicate which bubble should be used for grading</p>"); |
$r->print("<p>Please indicate which bubble should be used for grading</p>"); |
$r->print("Some questions have no scanned bubbles\n"); |
$r->print("Some questions have no scanned bubbles\n"); |
$r->print('<input type="hidden" name="scantron_questions" value="'. |
$r->print('<input type="hidden" name="scantron_questions" value="'. |
Line 4808 DOWNLOAD
|
Line 4849 DOWNLOAD
|
# |
# |
#------------------------------------------------------------------- |
#------------------------------------------------------------------- |
|
|
|
|
#-------------------------- Menu interface ------------------------- |
#-------------------------- Menu interface ------------------------- |
# |
# |
#--- Show a Grading Menu button - Calls the next routine --- |
#--- Show a Grading Menu button - Calls the next routine --- |
Line 4861 sub gradingmenu {
|
Line 4901 sub gradingmenu {
|
if (!checkReceiptNo(formname,'notOK')) { return false;} |
if (!checkReceiptNo(formname,'notOK')) { return false;} |
formname.submit(); |
formname.submit(); |
} |
} |
|
if (val < 7) formname.submit(); |
} |
} |
|
|
function checkReceiptNo(formname,nospace) { |
function checkReceiptNo(formname,nospace) { |
Line 4913 GRADINGMENUJS
|
Line 4954 GRADINGMENUJS
|
($saveSec eq $_ ? 'selected="on"':'').'>'.$_.'</option>'."\n"; |
($saveSec eq $_ ? 'selected="on"':'').'>'.$_.'</option>'."\n"; |
} |
} |
} |
} |
$result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="on"' : ''). '>all</select> '; |
$result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="on"' : ''). '>all</option></select> '; |
|
|
$result.=&mt('Student Status').':</b>'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,undef); |
$result.=&mt('Student Status').':</b>'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,undef); |
|
|
Line 4965 GRADINGMENUJS
|
Line 5006 GRADINGMENUJS
|
'-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')">'. |
'-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')">'. |
'</td></tr>'."\n"; |
'</td></tr>'."\n"; |
} |
} |
|
$result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'. |
|
'<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'. |
|
'" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n"; |
|
|
$result.='</form></td></tr></table>'."\n". |
$result.='</form></td></tr></table>'."\n". |
'</td></tr></table>'."\n". |
'</td></tr></table>'."\n". |