[LON-CAPA-cvs] cvs: loncom(version_2_8_X) /homework grades.pm
raeburn
raeburn@source.lon-capa.org
Fri, 20 Mar 2009 19:15:29 -0000
This is a MIME encoded message
--raeburn1237576529
Content-Type: text/plain
raeburn Fri Mar 20 19:15:29 2009 EDT
Modified files: (Branch: version_2_8_X)
/loncom/homework grades.pm
Log:
--raeburn1237576529
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20090320191529.txt"
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.528.2.10 loncom/homework/grades.pm:1.528.2.11
--- loncom/homework/grades.pm:1.528.2.10 Fri Jan 16 02:36:30 2009
+++ loncom/homework/grades.pm Fri Mar 20 19:15:29 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.528.2.10 2009/01/16 02:36:30 raeburn Exp $
+# $Id: grades.pm,v 1.528.2.11 2009/03/20 19:15:29 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -255,9 +255,9 @@
$partsseen{$partID}=1;
}
my $display_part=&get_display_part($partID,$symb);
- $result.='<td>'.&mt('<b>Part: </b>[_1]',$display_part).' <span class="LC_internal_info">'.
- $resID.'</span></td>'.
- '<td>'.&mt('<b>Type: </b>[_1]',$responsetype).'</td></tr>';
+ $result.='<td><b>'.&mt('Part').': </b>'.$display_part.
+ ' <span class="LC_internal_info">'.$resID.'</span></td>'.
+ '<td><b>'.&mt('Type').': </b>'.$responsetype.'</td></tr>';
# '<td>'.&mt('<b>Handgrade: </b>[_1]',$handgrade).'</td></tr>';
}
}
@@ -306,11 +306,14 @@
sub get_radiobutton_correct_foil {
my ($partid,$respid,$symb,$uname,$udom)=@_;
my $analyze = &get_analyze($symb,$uname,$udom);
- foreach my $foil (@{&get_order($partid,$respid,$symb,$uname,$udom)}) {
- if ($analyze->{"$partid.$respid.foil.value.$foil"} eq 'true') {
- return $foil;
- }
- }
+ my $foils = &get_order($partid,$respid,$symb,$uname,$udom);
+ if (ref($foils) eq 'ARRAY') {
+ foreach my $foil (@{$foils}) {
+ if ($analyze->{"$partid.$respid.foil.value.$foil"} eq 'true') {
+ return $foil;
+ }
+ }
+ }
}
}
@@ -737,7 +740,7 @@
my $title.=
'<h3><span class="LC_info">'.
- &mt('Verifying Submission Receipt [_1]',$receipt).
+ &mt('Verifying Receipt No. [_1]',$receipt).
'</span></h3>'."\n".
'<h4>'.&mt('<b>Resource: </b>[_1]',$env{'form.probTitle'}).
'</h4>'."\n";
@@ -822,17 +825,15 @@
&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'};
my $result='<h3><span class="LC_info"> '.
- &mt($viewgrade.' Submissions for a Student or a Group of Students')
+ &mt("$viewgrade Submissions for a Student or a Group of Students")
.'</span></h3>';
my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes'));
- my %lt = ( 'multiple' =>
- "Please select a student or group of students before clicking on the Next button.",
- 'single' =>
- "Please select the student before clicking on the Next button.",
- );
- %lt = &Apache::lonlocal::texthash(%lt);
+ my %lt = &Apache::lonlocal::texthash (
+ 'multiple' => 'Please select a student or group of students before clicking on the Next button.',
+ 'single' => 'Please select the student before clicking on the Next button.',
+ );
$request->print(<<LISTJAVASCRIPT);
<script type="text/javascript" language="javascript">
function checkSelect(checkBox) {
@@ -875,17 +876,15 @@
"\n".$table;
$gradeTable .=
- ' '.
- &mt('<b>View Problem Text: </b>[_1]',
+ ' <b>'.&mt('View Problem Text').': </b>'.
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n".
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('one student').' </label>'."\n".
- '<label><input type="radio" name="vProb" value="all" /> '.&mt('all students').' </label>').'<br />'."\n";
+ '<label><input type="radio" name="vProb" value="all" /> '.&mt('all students').' </label><br />'."\n";
$gradeTable .=
- ' '.
- &mt('<b>View Answer: </b>[_1]',
+ ' <b>'.&mt('View Answer').': </b>'.
'<label><input type="radio" name="vAns" value="no" /> '.&mt('no').' </label>'."\n".
'<label><input type="radio" name="vAns" value="yes" /> '.&mt('one student').' </label>'."\n".
- '<label><input type="radio" name="vAns" value="all" checked="checked" /> '.&mt('all students').' </label>').'<br />'."\n";
+ '<label><input type="radio" name="vAns" value="all" checked="checked" /> '.&mt('all students').' </label><br />'."\n";
my $submission_options;
if ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1) {
@@ -901,18 +900,16 @@
'<label><input type="radio" name="lastSub" value="datesub" /> '.&mt('by dates and submissions').' </label>'."\n".
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').'</label>';
$gradeTable .=
- ' '.
- &mt('<b>Submissions: </b>[_1]',$submission_options).'<br />'."\n";
+ ' <b>'.&mt('Submissions').': </b>'.$submission_options.'<br />'."\n";
$gradeTable .=
- ' '.
- &mt('<b>Grading Increments:</b> [_1]',
+ ' <b>'.&mt('Grading Increments').': </b>'.
'<select name="increment">'.
'<option value="1">'.&mt('Whole Points').'</option>'.
'<option value=".5">'.&mt('Half Points').'</option>'.
'<option value=".25">'.&mt('Quarter Points').'</option>'.
'<option value=".1">'.&mt('Tenths of a Point').'</option>'.
- '</select>');
+ '</select>';
$gradeTable .=
&build_section_inputs().
@@ -931,15 +928,14 @@
&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,'javascript:reLoadList(this.form);')).'<br />';
}
- $gradeTable.=&mt('To '.lc($viewgrade).' a submission or a group of submissions, click on the check box(es) '.
- 'next to the student\'s name(s). Then click on the Next button.').'<br />'."\n".
+ $gradeTable.=&mt('To '.lc($viewgrade)." a submission or a group of submissions, click on the check box(es) next to the student's name(s). Then click on the Next button.").'<br />'."\n".
'<input type="hidden" name="command" value="processGroup" />'."\n";
# checkall buttons
$gradeTable.=&check_script('gradesub', 'stuinfo');
$gradeTable.='<input type="button" '."\n".
'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n".
- 'value="'.&mt('Next->').'" /> <br />'."\n";
+ 'value="'.&mt('Next').' →" /> <br />'."\n";
$gradeTable.=&check_buttons();
$gradeTable.='<label><input type="checkbox" name="checkPlag" checked="checked" />'.&mt('Check For Plagiarism').'</label>';
my ($classlist, undef, $fullname) = &getclasslist($getsec,'1',$getgroup);
@@ -1059,7 +1055,7 @@
$gradeTable.=&Apache::loncommon::end_data_table()."\n".
'<input type="button" '.
'onClick="javascript:checkSelect(this.form.stuinfo);" '.
- 'value="'.&mt('Next->').'" /></form>'."\n";
+ 'value="'.&mt('Next').' →" /></form>'."\n";
if ($ctr == 0) {
my $num_students=(scalar(keys(%$fullname)));
if ($num_students eq 0) {
@@ -1155,6 +1151,7 @@
#--- Javascript to handle the submission page functionality ---
sub sub_page_js {
my $request = shift;
+ my $alertmsg = &mt('A number equal or greater than 0 is expected. Entered value = ');
$request->print(<<SUBJAVASCRIPT);
<script type="text/javascript" language="javascript">
function updateRadio(formname,id,weight) {
@@ -1165,7 +1162,7 @@
gradeBox.value = pts;
var resetbox = false;
if (isNaN(pts) || pts < 0) {
- alert("A number equal or greater than 0 is expected. Entered value = "+pts);
+ alert("$alertmsg"+pts);
for (var i=0; i<radioButton.length; i++) {
if (radioButton[i].checked) {
gradeBox.value = i;
@@ -1410,6 +1407,7 @@
my $docopen=&Apache::lonhtmlcommon::javascript_docopen();
$docopen=~s/^document\.//;
+ my $alertmsg = &mt('Please select a word or group of words from document and then click this link.');
$request->print(<<SUBJAVASCRIPT);
<script type="text/javascript" language="javascript">
@@ -1442,7 +1440,7 @@
else return;
var cleantxt = txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," ");
if (cleantxt=="") {
- alert("Please select a word or group of words from document and then click this link.");
+ alert("$alertmsg");
return;
}
var nret = prompt("Add selection to keyword list? Edit if desired.",cleantxt);
@@ -1697,7 +1695,7 @@
$wgt.')" /></td>'."\n";
$line.='<td>/'.$wgt.' '.$wgtmsg.
($$record{'resource.'.$partid.'.solved'} eq 'correct_by_student' ? ' '.$checkIcon : '').
- ' </td><td>'."\n";
+ ' </td><td><b>'.&mt('Grade Status').':</b>'."\n";
$line.='<select name="GD_SEL'.$counter.'_'.$partid.'" '.
'onChange="javascript:clearRadBox(this.form,\''.$counter.'_'.$partid.'\')" >'."\n";
if ($$record{'resource.'.$partid.'.solved'} eq 'excused') {
@@ -1711,8 +1709,7 @@
$result .=
- &mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line);
-
+ '<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>';
$result.='</tr></table>'."\n";
$result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="" />'."\n".
@@ -2094,7 +2091,7 @@
$lastsubonly.="\n".'<div class="LC_grade_submission_part"><b>Part:</b> '.
$display_part.' <span class="LC_internal_info">( ID '.$respid.
' )</span> '.
- '<span class="LC_warning">'.&mt('Nothing submitted - no attempts').'</span><br /><br /></div>';
+ '<span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span><br /><br /></div>';
next;
}
foreach my $submission (@$string) {
@@ -2146,7 +2143,7 @@
}
$lastsubonly.='<b>'.&mt('Submitted Answer:').' </b>'.
&cleanRecord($subval,$responsetype,$symb,$partid,
- $respid,\%record,$order);
+ $respid,\%record,$order,undef,$uname,$udom);
if ($similar) {$lastsubonly.="<br /><br />$similar\n";}
$lastsubonly.='</div>';
}
@@ -2275,7 +2272,7 @@
'<option>7</option><option>10</option></select>'."\n";
my $nsel = ($env{'form.NTSTU'} ne '' ? $env{'form.NTSTU'} : '1');
$ntstu =~ s/<option>$nsel</<option selected="selected">$nsel</;
- $endform.=&mt('[_1]student(s)',$ntstu);
+ $endform.=&mt('[quant,_1,student]',$ntstu);
$endform.=' <input type="button" value="'.&mt('Previous').'" '.
'onClick="javascript:checksubmit(this.form,\'Previous\');" target="_self" /> '."\n".
'<input type="button" value="'.&mt('Next').'" '.
@@ -3018,6 +3015,7 @@
sub viewgrades_js {
my ($request) = shift;
+ my $alertmsg = &mt('A number equal or greater than 0 is expected. Entered value = ');
$request->print(<<VIEWJAVASCRIPT);
<script type="text/javascript" language="javascript">
function writePoint(partid,weight,point) {
@@ -3026,7 +3024,7 @@
if (point == "textval") {
point = document.classgrade["TEXTVAL_"+partid].value;
if (isNaN(point) || parseFloat(point) < 0) {
- alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point));
+ alert("$alertmsg"+parseFloat(point));
var resetbox = false;
for (var i=0; i<radioButton.length; i++) {
if (radioButton[i].checked) {
@@ -3124,7 +3122,7 @@
var weight = document.classgrade["weight_"+partid].value;
if (isNaN(point) || parseFloat(point) < 0) {
- alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point));
+ alert("$alertmsg"+parseFloat(point));
textbox.value = "";
return;
}
@@ -3213,19 +3211,19 @@
'<input type="hidden" name="Status" value="'.$env{'stu_status'}.'" />'."\n".
'<input type="hidden" name="probTitle" value="'.$env{'form.probTitle'}.'" />'."\n";
- my $sectionClass;
- my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
+ my ($common_header,$specific_header);
if ($env{'form.section'} eq 'all') {
- $sectionClass='Class';
+ $common_header = &mt('Assign Common Grade to Class');
+ $specific_header = &mt('Assign Grade to Specific Students in Class');
} elsif ($env{'form.section'} eq 'none') {
- $sectionClass='Students in no Section';
+ $common_header = &mt('Assign Common Grade to Students in no Section');
+ $specific_header = &mt('Assign Grade to Specific Students in no Section');
} else {
- $sectionClass='Students in Section(s) [_1]';
+ my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
+ $common_header = &mt('Assign Common Grade to Students in Section(s) [_1]',$section_display);
+ $specific_header = &mt('Assign Grade to Specific Students in Section(s) [_1]',$section_display);
}
- $result.=
- '<h3>'.
- &mt("Assign Common Grade To $sectionClass",$section_display).'</h3>';
- $result.= &Apache::loncommon::start_data_table();
+ $result.= '<h3>'.$common_header.'</h3>'.&Apache::loncommon::start_data_table();
#radio buttons/text box for assigning points for a section or class.
#handles different parts of a problem
my ($partlist,$handgrade,$responseType) = &response_type($symb);
@@ -3256,8 +3254,8 @@
my $line = '<input type="text" name="TEXTVAL_'.
$partid.'" size="4" '.'onChange="javascript:writePoint(\''.
$partid.'\','.$weight{$partid}.',\'textval\')" /> /'.
- $weight{$partid}.' (problem weight)</td>'."\n";
- $line.= '<td><select name="SELVAL_'.$partid.'"'.
+ $weight{$partid}.' '.&mt('(problem weight)').'</td>'."\n";
+ $line.= '<td><b>'.&mt('Grade Status').':</b><select name="SELVAL_'.$partid.'"'.
'onChange="javascript:writeRadText(\''.$partid.'\','.
$weight{$partid}.')"> '.
'<option selected="selected"> </option>'.
@@ -3272,7 +3270,7 @@
$result.=
&Apache::loncommon::start_data_table_row()."\n".
- &mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line).
+ '<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'.
&Apache::loncommon::end_data_table_row()."\n";
$ctsparts++;
}
@@ -3283,32 +3281,32 @@
#table listing all the students in a section/class
#header of table
- $result.= '<h3>'.&mt('Assign Grade to Specific Students in '.$sectionClass,
- $section_display).'</h3>';
- $result.= &Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_header_row().
- '<th>'.&mt('No.').'</th>'.
- '<th>'.&nameUserString('header')."</th>\n";
+ $result.= '<h3>'.$specific_header.'</h3>'.
+ &Apache::loncommon::start_data_table().
+ &Apache::loncommon::start_data_table_header_row().
+ '<th>'.&mt('No.').'</th>'.
+ '<th>'.&nameUserString('header')."</th>\n";
my (@parts) = sort(&getpartlist($symb));
my (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);
my @partids = ();
foreach my $part (@parts) {
my $display=&Apache::lonnet::metadata($url,$part.'.display');
- $display =~ s|^Number of Attempts|Tries<br />|; # makes the column narrower
+ my $narrowtext = &mt('Tries').'<br />';
+ $display =~ s{^Number of Attempts}{$narrowtext}; # makes the column narrower
if (!$display) { $display = &Apache::lonnet::metadata($url,$part.'.name'); }
my ($partid) = &split_part_type($part);
push(@partids,$partid);
my $display_part=&get_display_part($partid,$symb);
if ($display =~ /^Partial Credit Factor/) {
$result.='<th>'.
- &mt('Score Part: [_1]<br /> (weight = [_2])',
- $display_part,$weight{$partid}).'</th>'."\n";
+ &mt('Score Part: [_1] (weight = [_2])',
+ $display_part.'<br />',$weight{$partid}).'</th>'."\n";
next;
} else {
if ($display =~ /Problem Status/) {
- my $grade_status_mt = &mt('Grade Status');
- $display =~ s{Problem Status}{$grade_status_mt<br />};
+ my $grade_status_mt = &mt('Grade Status').'<br />';
+ $display =~ s{Problem Status}{$grade_status_mt};
}
my $part_mt = &mt('Part:');
$display =~s{\[Part: \Q$partid\E\]}{$part_mt $display_part};
@@ -3465,10 +3463,11 @@
if ($part !~ m/^\Q$partid\E/) { next;}
if ($type eq 'awarded' || $type eq 'solved') { next; }
my $display=&Apache::lonnet::metadata($url,$stores.'.display');
- $display =~ s/\[Part: (\w)+\]//;
- $display =~ s/Number of Attempts/Tries/;
- $header .= '<th align="center">'.&mt('Old '.$display).'</th>'.
- '<th align="center">'.&mt('New '.$display).'</th>';
+ $display =~ s/\[Part: \Q$part\E\]//;
+ my $narrowtext = &mt('Tries');
+ $display =~ s{Number of Attempts}{$narrowtext};
+ $header .= '<th align="center">'.&mt('Old').' '.$display).'</th>'.
+ '<th align="center">'.&mt('New').' '.$display).'</th>';
$columns{$partid}+=2;
}
}
@@ -3810,11 +3809,12 @@
}
sub checkforfile_js {
+ my $alertmsg = &mt('Please use the browse button to select a file from your local directory.');
my $result =<<CSVFORMJS;
<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.");
+ alert("$alertmsg");
return false;
}
formname.submit();
@@ -3834,7 +3834,7 @@
$result.=$table;
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n";
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n";
- $result.=' <b>'.&mt('Specify a file containing the class scores for current resource').
+ $result.=' <b>'.&mt('Specify a file containing the class scores for current resource.').
'.</b></td></tr>'."\n";
$result.='<tr bgcolor=#ffffe6><td>'."\n";
my $upload=&mt("Upload Scores");
@@ -4088,12 +4088,13 @@
sub pickStudentPage {
my ($request) = shift;
+ my $alertmsg = &mt('Please select the student you wish to grade.');
$request->print(<<LISTJAVASCRIPT);
<script type="text/javascript" language="javascript">
function checkPickOne(formname) {
if (radioSelection(formname.student) == null) {
- alert("Please select the student you wish to grade.");
+ alert("$alertmsg");
return;
}
ptr = pullDownSelection(formname.selectpage);
@@ -4128,7 +4129,7 @@
$ctr++;
}
$select.= '</select>';
- $result.=&mt(' <b>Problems from:</b> [_1]',$select)."<br />\n";
+ $result.=' <b>'.&mt('Problems from').":</b> $select<br />\n";
$ctr=0;
foreach (@$titles) {
@@ -4143,13 +4144,13 @@
my $options =
'<label><input type="radio" name="vProb" value="no" checked="checked" /> '.&mt('no').' </label>'."\n".
'<label><input type="radio" name="vProb" value="yes" /> '.&mt('yes').' </label>'."<br />\n";
- $result.=' '.&mt('<b>View Problems Text: </b> [_1]',$options);
+ $result.=' <b>'.&mt('View Problem Text').": </b> $options";
$options =
'<label><input type="radio" name="lastSub" value="none" /> '.&mt('none').' </label>'."\n".
'<label><input type="radio" name="lastSub" value="datesub" checked="checked" /> '.&mt('by dates and submissions').'</label>'."\n".
'<label><input type="radio" name="lastSub" value="all" /> '.&mt('all details').' </label>'."\n";
- $result.=' '.&mt('<b>Submission Details: </b>[_1]',$options);
+ $result.=' >b>'.&mt('Submissions').": </b>$options";
$result.=&build_section_inputs();
my $stu_status = join(':',&Apache::loncommon::get_env_multiple('form.Status'));
@@ -4158,12 +4159,10 @@
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".
'<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."<br />\n";
- $result.=' '.&mt('<b>Use CODE: [_1] </b>',
- '<input type="text" name="CODE" value="" />').
- '<br />'."\n";
+ $result.=' <b>'.&mt('Use CODE').': </b> <input type="text" name="CODE" value="" /><br />'."\n";
$result.=' <input type="button" '.
- 'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next->').'" /><br />'."\n";
+ 'onClick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" /><br />'."\n";
$request->print($result);
@@ -4339,7 +4338,7 @@
# $request->print('match='.$1."<br />\n");
# }
# $companswer =~ s|<table border=\"1\">|<table border=\"0\">|g;
- $studentTable.=' <b>'.$title.'</b> <br /> '.&mt('<b>Correct answer:</b><br />[_1]',$companswer);
+ $studentTable.=' <b>'.$title.'</b> <br /> <b>'.&mt('Correct answer').':</b><br />'.$companswer);
}
my %record = &Apache::lonnet::restore($symbx,$env{'request.course.id'},$udom,$uname);
@@ -4409,7 +4408,7 @@
my %orders;
$mark{'correct_by_student'} = $checkIcon;
if (!exists($$record{'1:timestamp'})) {
- return '<br /> <span class="LC_warning">'.&mt('Nothing submitted - no attempts').'</span><br />';
+ return '<br /> <span class="LC_warning">'.&mt('Nothing submitted - no attempts.').'</span><br />';
}
my $interaction;
@@ -5525,7 +5524,8 @@
my ($line,$whichline,$scantron_config,$scan_data,$just_header)=@_;
my %record;
- my $questions=substr($line,$$scantron_config{'Qstart'}-1); # Answers
+ my $lastpos = $env{'form.scantron_maxbubble'}*$$scantron_config{'Qlength'};
+ my $questions=substr($line,$$scantron_config{'Qstart'}-1,$lastpos); # Answers
my $data=substr($line,0,$$scantron_config{'Qstart'}-1); # earlier stuff
if (!($$scantron_config{'CODElocation'} eq 0 ||
$$scantron_config{'CODElocation'} eq 'none')) {
@@ -6232,15 +6232,15 @@
}
if ($stop) {
if ($validate_phases[$currentphase] eq 'sequence') {
- $r->print('<input type="submit" name="submit" value="'.&mt('Ignore ->').' " />');
+ $r->print('<input type="submit" name="submit" value="'.&mt('Ignore').' →" />');
$r->print(' '.&mt('this error').' <br />');
$r->print(" <p>".&mt("Or click the 'Grading Menu' button to start over.")."</p>");
} else {
if ($validate_phases[$currentphase] eq 'doublebubble' || $validate_phases[$currentphase] eq 'missingbubbles') {
- $r->print('<input type="button" name="submitbutton" value="'.&mt('Continue ->').'" onclick="javascript:verify_bubble_radio(this.form)" />');
+ $r->print('<input type="button" name="submitbutton" value="'.&mt('Continue').' →" onclick="javascript:verify_bubble_radio(this.form)" />');
} else {
- $r->print('<input type="submit" name="submit" value="'.&mt('Continue ->').'" />');
+ $r->print('<input type="submit" name="submit" value="'.&mt('Continue').' →" />');
}
$r->print(' '.&mt('using corrected info').' <br />');
$r->print("<input type='submit' value='".&mt("Skip")."' name='scantron_skip_record' />");
@@ -6833,7 +6833,7 @@
".&mt("[_1]Select[_2] a CODE from the list of all CODEs and use it.",
"<a target='_blank' href='$href'>","</a>")."
</label>
- ".&mt("Selected CODE is [_1]","<input readonly='true' type='text' size='8' name='scantron_CODE_selectedvalue' onfocus=\"javascript:change_radio('use_found')\" onchange=\"javascript:change_radio('use_found')\" />"));
+ ".&mt('Selected CODE is [_1]','<input readonly="readonly" type="text" size="8" name="scantron_CODE_selectedvalue" onfocus="javascript:change_radio('use_found')" onchange="javascript:change_radio('use_found')" />'));
$r->print("\n<br />");
}
$r->print("
@@ -7394,7 +7394,7 @@
}
}
}
- &Apache::lonnet::delenv('scantron\.');
+ &Apache::lonnet::delenv('scantron.');
&save_bubble_lines();
$env{'form.scantron_maxbubble'} =
@@ -7647,6 +7647,17 @@
$studentrecord .= $recording;
}
if ($studentrecord ne $studentdata) {
+ &Apache::lonxml::clear_problem_counter();
+ if (&grade_student_bubbles($r,$uname,$udom,$scan_record,$scancode,
+ \@resources) eq 'ssi_error') {
+ $ssi_error = 0; # So end of handler error message does not trigger.
+ $r->print("</form>");
+ &ssi_print_error($r);
+ $r->print(&show_grading_menu_form($symb));
+ &Apache::lonnet::remove_lock($lock);
+ delete($completedstudents{$uname});
+ return '';
+ }
$counter = -1;
$studentrecord = '';
foreach my $resource (@resources) {
@@ -7689,7 +7700,7 @@
if (&Apache::loncommon::connection_aborted($r)) { last; }
} continue {
&Apache::lonxml::clear_problem_counter();
- &Apache::lonnet::delenv('scantron\.');
+ &Apache::lonnet::delenv('scantron.');
}
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
&Apache::lonnet::remove_lock($lock);
@@ -7739,7 +7750,7 @@
<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.");
+ alert("'.&mt('Please use the browse button to select a file from your local directory.'.'");
return false;
}
formname.submit();
@@ -8292,6 +8303,7 @@
"\n";
}
$Str .="</form>\n";
+ my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");
$request->print(<<GRADINGMENUJS);
<script type="text/javascript" language="javascript">
function checkChoice(formname,val,cmdx) {
@@ -8319,7 +8331,7 @@
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;}
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;}
if (checkOpt) {
- alert("Please enter a receipt number given by a student in the receipt box.");
+ alert("$receiptalert$receiptalert");
formname.receipt.value = "";
formname.receipt.focus();
return false;
@@ -8340,6 +8352,7 @@
if (!$symb) {return '';}
my $probTitle = &Apache::lonnet::gettitle($symb);
+ my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");
$request->print(<<GRADINGMENUJS);
<script type="text/javascript" language="javascript">
function checkChoice(formname,val,cmdx) {
@@ -8367,7 +8380,7 @@
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;}
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;}
if (checkOpt) {
- alert("Please enter a receipt number given by a student in the receipt box.");
+ alert("$receiptalert");
formname.receipt.value = "";
formname.receipt.focus();
return false;
@@ -8467,7 +8480,7 @@
</label>
</div>
<div class="LC_grade_select_mode_type">
- <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next->').'" />
+ <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" />
</div>
</div>
</div>
@@ -8486,7 +8499,7 @@
</label>
</div>
<div class="LC_grade_select_mode_type">
- <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next->').'" />
+ <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" />
</div>
</div>
</div>
@@ -8590,7 +8603,7 @@
$result.=$table;
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n";
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n";
- $result.=' <b>'.&mt('Specify a file containing the clicker information for this resource').
+ $result.=' <b>'.&mt('Specify a file containing the clicker information for this resource.').
'.</b></td></tr>'."\n";
$result.='<tr bgcolor=#ffffe6><td>'."\n";
# Attempt to restore parameters from last session, set defaults if not present
@@ -9026,7 +9039,7 @@
}
}
# We are done
- $result.='<br />'.&mt('Successfully stored grades for [_1] student(s).',$storecount).
+ $result.='<br />'.&mt('Successfully stored grades for [quant,_1,student].',$storecount).
'</td></tr></table>'."\n".
'</td></tr></table><br /><br />'."\n";
return $result.&show_grading_menu_form($symb);
--raeburn1237576529--