--- loncom/homework/grades.pm 2010/04/01 02:28:27 1.574.2.10
+++ loncom/homework/grades.pm 2010/08/13 01:23:59 1.596.2.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.574.2.10 2010/04/01 02:28:27 raeburn Exp $
+# $Id: grades.pm,v 1.596.2.1 2010/08/13 01:23:59 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -160,6 +160,10 @@ sub response_type {
return;
}
my $res = $navmap->getBySymb($symb);
+ unless (ref($res)) {
+ $$response_error = 1;
+ return;
+ }
my $partlist = $res->parts();
my %vPart =
map { $_ => 1 } (&Apache::loncommon::get_env_multiple('form.vPart'));
@@ -195,7 +199,8 @@ sub get_display_part {
my ($partID,$symb)=@_;
my $display=&Apache::lonnet::EXT('resource.'.$partID.'.display',$symb);
if (defined($display) and $display ne '') {
- $display.= " (id $partID )";
+ $display.= ' ('
+ .&mt('Part ID: [_1]',$partID).' )';
} else {
$display=$partID;
}
@@ -206,8 +211,6 @@ sub get_display_part {
#--- and parts and response type
sub showResourceInfo {
my ($symb,$probTitle,$checkboxes,$res_error) = @_;
- my $col=3;
- if ($checkboxes) { $col=4; }
my $result = '
'.&mt('Current Resource').': '.$probTitle.' '."\n";
my ($partlist,$handgrade,$responseType) = &response_type($symb,$res_error);
if (ref($res_error)) {
@@ -215,32 +218,41 @@ sub showResourceInfo {
return;
}
}
- $result .=''."\n";
+ $result.=&Apache::loncommon::end_data_table();
return $result,$responseType,$hdgrade,$partlist,$handgrade;
}
@@ -370,7 +382,7 @@ sub cleanRecord {
return ''.
''.&mt('Answer').' '.$toprow.' '.
''.$grayFont.&mt('Option ID').' '.
- $grayFont.$bottomrow.' '.'
';
+ $bottomrow.'';
} elsif ($response eq 'match') {
my %answer=&Apache::lonnet::str2hash($answer);
my %grading=&Apache::lonnet::str2hash($record->{$version."resource.$partid.$respid.submissiongrading"});
@@ -831,11 +843,14 @@ sub verifyreceipt {
}
}
if ($matches == 0) {
- $string = $title.&mt('No match found for the above receipt number.');
+ $string = $title
+ .''
+ .&mt('No match found for the above receipt number.')
+ .'
';
} else {
$string = &jscriptNform($symb).$title.
''.
- &mt('The above receipt number matches the following [numerate,_1,student].',$matches).
+ &mt('The above receipt number matches the following [quant,_1,student].',$matches).
'
'.
$header.
$contents.
@@ -933,10 +948,18 @@ LISTJAVASCRIPT
my $saveStatus = $stu_status eq '' ? 'Active' : $stu_status;
$env{'form.Status'} = $saveStatus;
$submission_options.=
- ' '.&mt('last submission only').' '."\n".
- ' '.&mt('last submission & parts info').' '."\n".
- ' '.&mt('by dates and submissions').' '."\n".
- ' '.&mt('all details').' ';
+ ''.
+ ' '.
+ &mt('last submission only').' '."\n".
+ ''.
+ ' '.
+ &mt('last submission & parts info').' '."\n".
+ ''.
+ ' '.
+ &mt('by dates and submissions').' '."\n".
+ ''.
+ ' '.
+ &mt('all details').' ';
$gradeTable .= &Apache::lonhtmlcommon::row_title(&mt('Submissions'))
.$submission_options
.&Apache::lonhtmlcommon::row_closure();
@@ -982,8 +1005,8 @@ LISTJAVASCRIPT
# checkall buttons
$gradeTable.=&check_script('gradesub', 'stuinfo');
$gradeTable.=' '."\n";
+ 'onclick="javascript:checkSelect(this.form.stuinfo);" '."\n".
+ 'value="'.&mt('Next').' →" /> '."\n";
$gradeTable.=&check_buttons();
my ($classlist, undef, $fullname) = &getclasslist($getsec,'1',$getgroup);
$gradeTable.= &Apache::loncommon::start_data_table().
@@ -1100,9 +1123,9 @@ LISTJAVASCRIPT
}
$gradeTable.=&Apache::loncommon::end_data_table()."\n".
- ' '."\n";
+ ' '."\n";
if ($ctr == 0) {
my $num_students=(scalar(keys(%$fullname)));
if ($num_students eq 0) {
@@ -1606,8 +1629,8 @@ INNERJS
pDoc = pWin.document;
pDoc.write("<\\/table>");
pDoc.write("<\\/td><\\/tr><\\/table> ");
- pDoc.write(" ");
- pDoc.write(" ");
+ pDoc.write(" ");
+ pDoc.write(" ");
pDoc.write("<\\/form>");
pDoc.write('$end_page_msg_central');
pDoc.close();
@@ -1680,8 +1703,8 @@ INNERJS
var hDoc = hwdWin.document;
hDoc.write("<\\/table>");
hDoc.write("<\\/td><\\/tr><\\/table> ");
- hDoc.write(" ");
- hDoc.write(" ");
+ hDoc.write(" ");
+ hDoc.write(" ");
hDoc.write("<\\/form>");
hDoc.write('$end_page_highlight_central');
hDoc.close();
@@ -1700,6 +1723,25 @@ sub get_increment {
return $increment;
}
+sub gradeBox_start {
+ return (
+ &Apache::loncommon::start_data_table()
+ .&Apache::loncommon::start_data_table_header_row()
+ .''.&mt('Part').' '
+ .''.&mt('Points').' '
+ .' '
+ .''.&mt('Assign Grade').' '
+ .''.&mt('Weight').' '
+ .''.&mt('Grade Status').' '
+ .&Apache::loncommon::end_data_table_header_row()
+ );
+}
+
+sub gradeBox_end {
+ return (
+ &Apache::loncommon::end_data_table()
+ );
+}
#--- displays the grading box, used in essay type problem and grading by page/sequence
sub gradeBox {
my ($request,$symb,$uname,$udom,$counter,$partid,$record) = @_;
@@ -1719,7 +1761,7 @@ sub gradeBox {
if ($last_resets{$partid}) {
$aggtries = &get_num_tries($record,$last_resets{$partid},$partid);
}
- $result.='';
+ $result.=&Apache::loncommon::start_data_table_row();
my $ctr = 0;
my $thisweight = 0;
my $increment = &get_increment();
@@ -1727,7 +1769,7 @@ sub gradeBox {
my $radio.=''."\n";
+ ''.$display_part.' '.$radio.' '.&mt('or').' '.$line.' ';
+ $result.=&Apache::loncommon::end_data_table_row();
$result.=' '."\n".
' '."\n".
''.
- &mt('View of the problem').
- ''.
- $rendered.
- '
';
+ ''
+ .'
'.&mt('View of the problem').' '
+ .$rendered
+ .'';
$companswer=
- ''.
- $companswer.
- '
';
+ ''
+ .'
'.&mt('Correct answer').' '
+ .$companswer
+ .'';
my $result;
if ($mode eq 'both') {
- $result=$rendered.$companswer;
+ $result=$rendered.$companswer;
} elsif ($mode eq 'text') {
- $result=$rendered;
+ $result=$rendered;
} elsif ($mode eq 'answer') {
- $result=$companswer;
+ $result=$companswer;
}
- $result=''.$result.'
';
return $result;
}
@@ -2034,7 +2075,7 @@ sub submission {
$request->print(<Keyword Options:
List
-Paste Selection to List
Highlight Attribute
KEYWORDS
@@ -2050,12 +2091,31 @@ KEYWORDS
}
# This is where output for one specific student would start
- my $add_class = ($counter%2) ? 'LC_grade_show_user_odd_row' : '';
- $request->print("\n\n".
- ''.
- '
'.&nameUserString(undef,$env{'form.fullname'},$uname,$udom).'
'.
- '
'."\n");
+ my $add_class = ($counter%2) ? ' LC_grade_show_user_odd_row' : '';
+ $request->print(
+ "\n\n"
+ .'
'
+ .'
'.&nameUserString(undef,$env{'form.fullname'},$uname,$udom).' '
+ ."\n"
+ );
+
+ # Show additional functions if allowed
+ if ($perm{'vgr'}) {
+ $request->print(
+ &Apache::loncommon::track_student_link(
+ &mt('View recent activity'),
+ $uname,$udom,'check')
+ .' '
+ );
+ }
+ if ($perm{'opa'}) {
+ $request->print(
+ &Apache::loncommon::pprmlink(
+ &mt('Set/Change parameters'),
+ $uname,$udom,$symb,'check'));
+ }
+ # Show Problem
if ($env{'form.vProb'} eq 'all' or $env{'form.vAns'} eq 'all') {
my $mode;
if ($env{'form.vProb'} eq 'all' && $env{'form.vAns'} eq 'all') {
@@ -2079,20 +2139,17 @@ KEYWORDS
# Display student info
$request->print(($counter == 0 ? '' : '
'));
- my $result='
';
-
- $result.='
';
my $line = ' /'.
$weight{$partid}.' '.&mt('(problem weight)').''."\n";
$line.= ''.&mt('Grade Status').': '.
' '.
''.&mt('excused').' '.
@@ -3336,14 +3428,14 @@ sub viewgrades {
$result.=
&Apache::loncommon::start_data_table_row()."\n".
- ''.&mt('Part').': '.$display_part.' '.&mt('Points').': '.$radio.' '.&mt('or').' '.$line.' '.
+ ''.&mt('Part:').' '.$display_part.' '.&mt('Points:').' '.$radio.' '.&mt('or').' '.$line.' '.
&Apache::loncommon::end_data_table_row()."\n";
$ctsparts++;
}
$result.=&Apache::loncommon::end_data_table()."\n".
' ';
$result.=' ';
+ 'onclick="javascript:resetEntry('.$ctsparts.');" />';
#table listing all the students in a section/class
#header of table
@@ -3407,7 +3499,7 @@ sub viewgrades {
$result.=&Apache::loncommon::end_data_table();
$result.=' '."\n";
$result.=' '."\n";
+ 'onclick="javascript:submit();" target="_self" />'."\n";
if (scalar(%$fullname) eq 0) {
my $colspan=3+scalar(@parts);
my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
@@ -3459,7 +3551,7 @@ sub viewstudentgrade {
'GD_'.$student.'_'.$part.'_awarded_s" value="'.$pts.'" />'."\n";
$result.=' '."\n";
} elsif ($type eq 'solved') {
my ($status,$foo)=split(/_/,$score,2);
@@ -3468,7 +3560,7 @@ sub viewstudentgrade {
$part.'_solved_s" value="'.$status.'" />'."\n";
$result.=' '."\n";
+ 'onchange="javascript:changeOneScore(\''.$part.'\',\''.$student.'\')" >'."\n";
$result.= (($status eq 'excused') ? ' '.&mt('excused').' '
: ' '.&mt('excused').' ')."\n";
$result.=''.&mt('reset status').' ';
@@ -3506,6 +3598,7 @@ sub editgrades {
'incorrect'=>'incorrect_by_override',
'excused' =>'excused',
'ungraded' =>'ungraded_attempted',
+ 'credited' =>'credit_attempted',
'nothing' => '',
);
my ($classlist,undef,$fullname) = &getclasslist($env{'form.section'},'0');
@@ -3828,7 +3921,7 @@ $result
Total number of records found in file: $distotal
Enter as many fields as you can. The system will inform you and bring you back
to this page if the data selected is insufficient to run your class.
-
+
$ignore
@@ -3851,7 +3944,6 @@ ENDPICK
}
sub csvupload_fields {
- my ($symb) = @_;
my ($symb,$errorref) = @_;
my (@parts) = &getpartlist($symb,$errorref);
if (ref($errorref)) {
@@ -3884,7 +3976,7 @@ sub csvuploadmap_footer {
-
+
ENDPICK
}
@@ -3929,7 +4021,7 @@ sub upcsvScores_form {
$upfile_select
-
+
$ignore
ENDUPFORM
@@ -3960,7 +4052,7 @@ sub csvuploadmap {
my ($i,$keyfields);
if (@records) {
my $fieldserror;
- my @fields=&csvupload_fields($symb,\$fieldserror);
+ my @fields=&csvupload_fields($symb,\$fieldserror);
if ($fieldserror) {
$request->print(&navmap_errormsg());
return;
@@ -4204,7 +4296,7 @@ LISTJAVASCRIPT
my ($titles,$symbx) = &getSymbMap($map_error);
if ($map_error) {
$request->print(&navmap_errormsg());
- return;
+ return;
}
my ($curpage) =&Apache::lonnet::decode_symb($symb);
# my ($curpage,$mapId) =&Apache::lonnet::decode_symb($symb);
@@ -4252,7 +4344,7 @@ LISTJAVASCRIPT
$result.=' '.&mt('Use CODE').': '."\n";
$result.=' '."\n";
+ 'onclick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" /> '."\n";
$request->print($result);
@@ -4291,7 +4383,7 @@ LISTJAVASCRIPT
}
$studentTable.=&Apache::loncommon::end_data_table()."\n";
$studentTable.=' '."\n";
+ 'onclick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" />'."\n";
$studentTable.=&show_grading_menu_form($symb);
$request->print($studentTable);
@@ -4398,7 +4490,9 @@ sub displayPage {
my $checkIcon = ' ';
- $studentTable.=' '.&mt('Note: Problems graded correct by the computer are marked with a [_1] symbol.',$checkIcon)."\n".
+ $studentTable.=' '.
+ &mt('Problems graded correct by the computer are marked with a [_1] symbol.',$checkIcon).
+ ' '."\n".
&Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row().
' Prob. '.
@@ -4469,11 +4563,13 @@ sub displayPage {
}
if (&canmodify($usec)) {
+ $studentTable.=&gradeBox_start();
foreach my $partid (@{$parts}) {
$studentTable.=&gradeBox($request,$symbx,$uname,$udom,$question,$partid,\%record);
$studentTable.=' '."\n";
$question++;
}
+ $studentTable.=&gradeBox_end();
$prob++;
}
$studentTable.='';
@@ -4482,10 +4578,11 @@ sub displayPage {
$curRes = $iterator->next();
}
- $studentTable.=''."\n".
- ' '.
- ''."\n";
+ $studentTable.=
+ ''."\n".
+ ' '.
+ ''."\n";
$studentTable.=&show_grading_menu_form($symb);
$request->print($studentTable);
@@ -4531,37 +4628,49 @@ sub displaySubByDates {
my @versionKeys = split(/\:/,$$record{$version.':keys'});
my @displaySub = ();
foreach my $partid (@{$parts}) {
+ my $hidden;
+ if (($$record{$version.':resource.'.$partid.'.type'} eq 'anonsurvey') ||
+ ($$record{$version.':resource.'.$partid.'.type'} eq 'anonsurveycred')) {
+ $hidden = 1;
+ }
my @matchKey = ($isTask ? sort(grep /^resource\.\d+\.\Q$partid\E\.award$/,@versionKeys)
: sort(grep /^resource\.\Q$partid\E\..*?\.submission$/,@versionKeys));
-
# next if ($$record{"$version:resource.$partid.solved"} eq '');
my $display_part=&get_display_part($partid,$symb);
foreach my $matchKey (@matchKey) {
if (exists($$record{$version.':'.$matchKey}) &&
$$record{$version.':'.$matchKey} ne '') {
-
+
my ($responseId)= ($isTask ? ($matchKey=~ /^resource\.(.*?)\.\Q$partid\E\.award$/)
: ($matchKey=~ /^resource\.\Q$partid\E\.(.*?)\.submission$/));
- $displaySub[0].=''.&mt('Part:').' '.$display_part.' ';
- $displaySub[0].='('.&mt('ID').' '.
- $responseId.') ';
- if ($$record{"$where.$partid.tries"} eq '') {
- $displaySub[0].=&mt('Trial not counted');
- } else {
- $displaySub[0].=&mt('Trial [_1]',
+ $displaySub[0].=''.&mt('Part: [_1]',$display_part).' '
+ .' '
+ .'('.&mt('Part ID: [_1]',$responseId).')'
+ .' '
+ .' ';
+ if ($hidden) {
+ $displaySub[0].= &mt('Anonymous Survey').' ';
+ } else {
+ if ($$record{"$where.$partid.tries"} eq '') {
+ $displaySub[0].=&mt('Trial not counted');
+ } else {
+ $displaySub[0].=&mt('Trial: [_1]',
$$record{"$where.$partid.tries"});
- }
- my $responseType=($isTask ? 'Task'
+ }
+ my $responseType=($isTask ? 'Task'
: $responseType->{$partid}->{$responseId});
- if (!exists($orders{$partid})) { $orders{$partid}={}; }
- if (!exists($orders{$partid}->{$responseId})) {
- $orders{$partid}->{$responseId}=
- &get_order($partid,$responseId,$symb,$uname,$udom,
- $no_increment);
- }
- $displaySub[0].=' '.
- &cleanRecord($$record{$version.':'.$matchKey},$responseType,$symb,$partid,$responseId,$record,$orders{$partid}->{$responseId},"$version:",$uname,$udom).' ';
+ if (!exists($orders{$partid})) { $orders{$partid}={}; }
+ if (!exists($orders{$partid}->{$responseId})) {
+ $orders{$partid}->{$responseId}=
+ &get_order($partid,$responseId,$symb,$uname,$udom,
+ $no_increment);
+ }
+ $displaySub[0].=''; # /nobreak
+ $displaySub[0].=' '.
+ &cleanRecord($$record{$version.':'.$matchKey},$responseType,$symb,$partid,$responseId,$record,$orders{$partid}->{$responseId},"$version:",$uname,$udom).' ';
+ }
}
}
if (exists($$record{"$where.$partid.checkedin"})) {
@@ -4621,6 +4730,7 @@ sub updateGradeByPage {
$request->print($result);
+
my $navmap = Apache::lonnavmaps::navmap->new();
unless (ref($navmap)) {
$request->print(&navmap_errormsg());
@@ -4770,7 +4880,7 @@ sub updateGradeByPage {
#
#-------------------------------------------------------------------
-#--------------------Bubblesheet (Scantron) Grading-----------------------------------
+#-------------------- Bubblesheet (Scantron) Grading -------------------
#
#------ start of section for handling grading by page/sequence ---------
@@ -4829,9 +4939,7 @@ the homework problem.
Returns html hidden inputs used to hold context/default values.
Arguments:
- $symb - $symb of the current resource
- $map_error - ref to scalar which will container error if
- $navmap object is unavailable in &getSymbMap().
+ $symb - $symb of the current resource
=cut
@@ -4850,7 +4958,9 @@ sub defaultFormData {
Return html dropdown of possible sequences to grade
Arguments:
- $symb - $symb of the current resource
+ $symb - $symb of the current resource
+ $map_error - ref to scalar which will container error if
+ $navmap object is unavailable in &getSymbMap().
=cut
@@ -5226,7 +5336,7 @@ sub scantron_selectphase {
'.&mt('File to upload: [_1]',' ').'
-
+
');
@@ -6757,7 +6867,7 @@ sub scantron_validate_ID {
#get scantron line setup
my %scantron_config=&get_scantron_config($env{'form.scantron_format'});
my ($scanlines,$scan_data)=&scantron_getfile();
-
+
my $nav_error;
&scantron_get_maxbubble(\$nav_error); # parse needs the bubble_lines.. array.
if ($nav_error) {
@@ -7399,7 +7509,6 @@ sub scantron_validate_doublebubble {
sub scantron_get_maxbubble {
my ($nav_error) = @_;
-
if (defined($env{'form.scantron_maxbubble'}) &&
$env{'form.scantron_maxbubble'}) {
&restore_bubble_lines();
@@ -7920,7 +8029,7 @@ sub scantron_upload_scantron_data {
&Apache::lonhtmlcommon::end_pick_box().'
-
+
');
return '';
@@ -8447,36 +8556,50 @@ sub grading_menu {
'saveState'=>"",
'gradingMenu'=>1,
'showgrading'=>"yes");
- my $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
- my @menu = ({ url => $url,
- name => &mt('Manual Grading/View Submissions'),
- short_description =>
- &mt('Start the process of hand grading submissions.'),
- });
+
+ my $url1 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
+
$fields{'command'} = 'csvform';
- $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
- push(@menu, { url => $url,
- name => &mt('Upload Scores'),
- short_description =>
- &mt('Specify a file containing the class scores for current resource.')});
+ my $url2 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
+
$fields{'command'} = 'processclicker';
- $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
- push(@menu, { url => $url,
- name => &mt('Process Clicker'),
- short_description =>
- &mt('Specify a file containing the clicker information for this resource.')});
+ my $url3 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
+
$fields{'command'} = 'scantron_selectphase';
- $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
- push(@menu, { url => $url,
- name => &mt('Grade/Manage/Review Bubblesheets'),
- short_description =>
- &mt('Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.')});
- $fields{'command'} = 'verify';
- $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
- push(@menu, { url => "",
- name => &mt('Verify Receipt No.'),
- short_description =>
- &mt('')});
+ my $url4 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
+
+ my @menu = ({ categorytitle=>'Course Grading',
+ items =>[
+ { linktext => 'Manual Grading/View Submissions',
+ url => $url1,
+ permission => 'F',
+ icon => 'edit-find-replace.png',
+ linktitle => 'Start the process of hand grading submissions.'
+ },
+ { linktext => 'Upload Scores',
+ url => $url2,
+ permission => 'F',
+ icon => 'uploadscores.png',
+ linktitle => 'Specify a file containing the class scores for current resource.'
+ },
+ { linktext => 'Process Clicker',
+ url => $url3,
+ permission => 'F',
+ icon => 'addClickerInfoFile.png',
+ linktitle => 'Specify a file containing the clicker information for this resource.'
+ },
+ { linktext => 'Grade/Manage/Review Bubblesheets',
+ url => $url4,
+ permission => 'F',
+ icon => 'stat.png',
+ linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.'
+ }
+ ]
+ });
+
+ #$fields{'command'} = 'verify';
+ #$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
+ #
# Create the menu
my $Str;
# $Str .= ''.&mt('Please select a grading task').' ';
@@ -8488,24 +8611,15 @@ sub grading_menu {
' '."\n".
' '."\n".
' '."\n";
- foreach my $menudata (@menu) {
- if ($menudata->{'name'} ne &mt('Verify Receipt No.')) {
- $Str .=' \n";
- } else {
- $Str .=' {'jscript'}.
- ' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '.
- ' /> '.
- &Apache::lonnet::recprefix($env{'request.course.id'}).
- '- ';
- }
- $Str .= ' '.(' 'x8).$menudata->{'short_description'}.
- "\n";
- }
+
+ $Str .= Apache::lonhtmlcommon::generate_menu(@menu);
+ #$menudata->{'jscript'}
+ $Str .=' '.
+ &Apache::lonnet::recprefix($env{'request.course.id'}).
+ '- ';
+
$Str .="\n";
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");
$request->print(< '."\n";
$result.='
-
-
-
- '.&mt('Grade Current Resource').'
-
-
-
- '.$table.'
-
-
-
-
-
'."\n";
- if (ref($sections)) {
- foreach my $section (sort(@$sections)) {
- $result.=''.$section.' '."\n";
- }
- }
+
+ '.&mt('Grade Current Resource').'
+
+
+ '.$table.'
+
+
+
+
+
+
+ '.&mt('Sections').'
+
+ '."\n";
+ $result.= $selsec;
$result.= 'all ';
$result.='
-
-
-
-
-
- '.&Apache::lonstatistics::GroupSelect('group','multiple',5).'
-
-
-
-
-
- '.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').'
-
-
-
-
-
-
- '.&mt('with submissions').'
- '.&mt('in grading queue').'
- '.&mt('with ungraded submissions').'
- '.&mt('with incorrect submissions').'
+
+
+
+
+ '.&mt('Groups').'
+
+ '.&Apache::lonstatistics::GroupSelect('group','multiple',5).'
+
+
+
+
+ '.&mt('Access Status').'
+
+ '.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').'
+
+
+
+
+ '.&mt('Submission Status').'
+
+
+ '.&mt('with submissions').'
+ '.&mt('in grading queue').'
+ '.&mt('with ungraded submissions').'
+ '.&mt('with incorrect submissions').'
'.&mt('with any status').'
-
-
-
-
-
+
+
+
+
+
+
+
+
'.
&mt('Select individual students to grade and view submissions.').'
-
+
-
-
-
+
+
'.&mt('Grade Complete Folder for One Student').'
-
-
-
+
+
'.
+ ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
&mt('The complete page/sequence/folder: For one student').'
-
-
-
';
$result .= &show_grading_menu_form($symb);
return $result;
@@ -8845,8 +8948,8 @@ sub process_clicker {
my $pcorrect=&mt("Percentage points for correct solution");
my $pincorrect=&mt("Percentage points for incorrect solution");
my $selectform=&Apache::loncommon::select_form($env{'form.upfiletype'},'upfiletype',
- ('iclicker' => 'i>clicker',
- 'interwrite' => 'interwrite PRS'));
+ {'iclicker' => 'i>clicker',
+ 'interwrite' => 'interwrite PRS'});
$symb = &Apache::lonenc::check_encrypt($symb);
$result.=<
@@ -8895,17 +8998,17 @@ function sanitycheck() {
$type: $selectform
- $attendance
- $personnel
- $specific
+ $attendance
+ $personnel
+ $specific
- $given
+ $given
-$pcorrect:
-$pincorrect:
-
+$pcorrect:
+$pincorrect:
+
ENDUPFORM
$result.=''."\n".
@@ -9265,7 +9368,7 @@ ENDHEADER
sub navmap_errormsg {
return ''.
&mt('An error occurred retrieving information about resources in the course.').'
'.
- &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this grading page..','
',' ').
+ &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this grading page.','
',' ').
'
';
}