version 1.597, 2010/03/11 16:29:42
|
version 1.604, 2010/04/01 00:58:43
|
Line 96 sub ssi_print_error {
|
Line 96 sub ssi_print_error {
|
|
|
# |
# |
# --- Retrieve the parts from the metadata file.--- |
# --- Retrieve the parts from the metadata file.--- |
|
# Returns an array of everything that the resources stores away |
|
# |
|
|
sub getpartlist { |
sub getpartlist { |
my ($symb,$errorref) = @_; |
my ($symb,$errorref) = @_; |
|
|
Line 121 sub getpartlist {
|
Line 124 sub getpartlist {
|
} |
} |
|
|
# --- Get the symbolic name of a problem and the url |
# --- Get the symbolic name of a problem and the url |
|
# Generate an error message if symb could not be found unless silent flag is set |
|
# Takes $env{'form.symb'} by default; if not present, takes $env{'form.url'} and tries to get symb from that |
|
# |
|
|
sub get_symb { |
sub get_symb { |
my ($request,$silent) = @_; |
my ($request,$silent) = @_; |
(my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
(my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
if ($symb eq '') { |
if ($symb eq '') { |
if (!$silent) { |
if (!$silent) { |
$request->print("Unable to handle ambiguous references:$url:."); |
$request->print(&mt("Unable to handle ambiguous references: [_1].",$url)); |
return (); |
return (); |
} |
} |
} |
} |
Line 207 sub get_display_part {
|
Line 214 sub get_display_part {
|
return $display; |
return $display; |
} |
} |
|
|
#--- Show resource title |
|
#--- and parts and response type |
|
sub showResourceInfo { |
|
my ($symb,$probTitle,$checkboxes,$res_error) = @_; |
|
my $result = '<h3>'.&mt('Current Resource').': '.$probTitle.'</h3>'."\n"; |
|
my ($partlist,$handgrade,$responseType) = &response_type($symb,$res_error); |
|
if (ref($res_error)) { |
|
if ($$res_error) { |
|
return; |
|
} |
|
} |
|
$result.=&Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row(); |
|
if ($checkboxes) { |
|
$result.='<th> </th>'; |
|
} |
|
$result.='<th>'.&mt('Problem Part').'</th>' |
|
.'<th>'.&mt('Res. ID').'</th>' |
|
.'<th>'.&mt('Type').'</th>' |
|
.&Apache::loncommon::end_data_table_header_row(); |
|
my %resptype = (); |
|
my $hdgrade='no'; |
|
my %partsseen; |
|
foreach my $partID (sort(keys(%$responseType))) { |
|
foreach my $resID (sort(keys(%{ $responseType->{$partID} }))) { |
|
my $handgrade=$$handgrade{$partID.'_'.$resID}; |
|
my $responsetype = $responseType->{$partID}->{$resID}; |
|
$hdgrade = $handgrade if ($handgrade eq 'yes'); |
|
$result.=&Apache::loncommon::start_data_table_row(); |
|
if ($checkboxes) { |
|
if (exists($partsseen{$partID})) { |
|
$result.="<td> </td>"; |
|
} else { |
|
$result.="<td><input type='checkbox' name='vPart' value='$partID' checked='checked' /></td>"; |
|
} |
|
$partsseen{$partID}=1; |
|
} |
|
my $display_part=&get_display_part($partID,$symb); |
|
$result.='<td>'.$display_part.'</td>' |
|
.'<td>'.'<span class="LC_internal_info">'.$resID.'</span></td>' |
|
.'<td>'.&mt($responsetype).'</td>' |
|
# .'<td>'.&mt('<b>Handgrade: </b>[_1]',$handgrade).'</td>' |
|
.&Apache::loncommon::end_data_table_row(); |
|
} |
|
} |
|
$result.=&Apache::loncommon::end_data_table(); |
|
return $result,$responseType,$hdgrade,$partlist,$handgrade; |
|
} |
|
|
|
sub reset_caches { |
sub reset_caches { |
&reset_analyze_cache(); |
&reset_analyze_cache(); |
&reset_perm(); |
&reset_perm(); |
Line 732 sub most_similar {
|
Line 690 sub most_similar {
|
|
|
# ignore empty submissions (occuring when only files are sent) |
# ignore empty submissions (occuring when only files are sent) |
|
|
unless ($uessay=~/\w+/) { return ''; } |
unless ($uessay=~/\w+/s) { return ''; } |
|
|
# these will be returned. Do not care if not at least 50 percent similar |
# these will be returned. Do not care if not at least 50 percent similar |
my $limit=0.6; |
my $limit=0.6; |
Line 769 sub most_similar {
|
Line 727 sub most_similar {
|
|
|
#------------------------------------ Receipt Verification Routines |
#------------------------------------ Receipt Verification Routines |
# |
# |
|
|
|
sub initialverifyreceipt { |
|
my $request = shift; |
|
&commonJSfunctions($request); |
|
my ($symb) = &get_symb($request); |
|
return '<form name="gradingMenu"><input type="submit" value="'.&mt('Verify Receipt No.').'" />'. |
|
&Apache::lonnet::recprefix($env{'request.course.id'}). |
|
'-<input type="text" name="receipt" size="4" />'. |
|
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
|
'<input type="hidden" name="command" value="verify" />'. |
|
"</form>\n"; |
|
} |
|
|
#--- Check whether a receipt number is valid.--- |
#--- Check whether a receipt number is valid.--- |
sub verifyreceipt { |
sub verifyreceipt { |
my $request = shift; |
my $request = shift; |
Line 878 sub listStudents {
|
Line 849 sub listStudents {
|
.&mt("$viewgrade Submissions for a Student or a Group of Students") |
.&mt("$viewgrade Submissions for a Student or a Group of Students") |
.'</span></h3>'; |
.'</span></h3>'; |
|
|
my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes')); |
my ($partlist,$handgrade,$responseType) = &response_type($symb |
|
#,$res_error |
|
); |
|
|
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
'multiple' => 'Please select a student or group of students before clicking on the Next button.', |
'multiple' => 'Please select a student or group of students before clicking on the Next button.', |
Line 921 LISTJAVASCRIPT
|
Line 894 LISTJAVASCRIPT
|
my $checkhdgrade = ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1 ) ? 'checked="checked"' : ''; |
my $checkhdgrade = ($env{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1 ) ? 'checked="checked"' : ''; |
my $checklastsub = $checkhdgrade eq '' ? 'checked="checked"' : ''; |
my $checklastsub = $checkhdgrade eq '' ? 'checked="checked"' : ''; |
my $gradeTable='<form action="/adm/grades" method="post" name="gradesub">'. |
my $gradeTable='<form action="/adm/grades" method="post" name="gradesub">'. |
"\n".$table; |
"\n"; |
|
|
$gradeTable .= &Apache::lonhtmlcommon::start_pick_box(); |
$gradeTable .= &Apache::lonhtmlcommon::start_pick_box(); |
$gradeTable .= &Apache::lonhtmlcommon::row_title(&mt('View Problem Text')) |
$gradeTable .= &Apache::lonhtmlcommon::row_title(&mt('View Problem Text')) |
Line 1785 sub gradeBox {
|
Line 1758 sub gradeBox {
|
$line.='<option value="reset status">'.&mt('reset status').'</option></select>'."\n"; |
$line.='<option value="reset status">'.&mt('reset status').'</option></select>'."\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); |
|
$result .= |
$result .= |
'<td>'.$display_part.'</td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'; |
'<td>'.$display_part.'</td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'; |
$result.=&Apache::loncommon::end_data_table_row(); |
$result.=&Apache::loncommon::end_data_table_row(); |
Line 2268 KEYWORDS
|
Line 2240 KEYWORDS
|
} |
} |
$request->print($lastsubonly); |
$request->print($lastsubonly); |
} elsif ($env{'form.lastSub'} eq 'datesub') { |
} elsif ($env{'form.lastSub'} eq 'datesub') { |
my (undef,$responseType,undef,$parts) = &showResourceInfo($symb); |
# my (undef,$responseType,undef,$parts) = &showResourceInfo($symb); |
|
my ($parts,$handgrade,$responseType) = &response_type($symb); |
|
|
$request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom)); |
$request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom)); |
} elsif ($env{'form.lastSub'} =~ /^(last|all)$/) { |
} elsif ($env{'form.lastSub'} =~ /^(last|all)$/) { |
$request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom, |
$request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom, |
Line 2664 sub processHandGrade {
|
Line 2638 sub processHandGrade {
|
|
|
# Go directly to grade student - from submission or link from chart page |
# Go directly to grade student - from submission or link from chart page |
if ($button eq 'Grade Student') { |
if ($button eq 'Grade Student') { |
(undef,undef,$env{'form.handgrade'},undef,undef) = &showResourceInfo($symb); |
# (undef,undef,$env{'form.handgrade'},undef,undef) = &showResourceInfo($symb); |
my $processUser = $env{'form.unamedom'.$env{'form.studentNo'}}; |
my $processUser = $env{'form.unamedom'.$env{'form.studentNo'}}; |
($env{'form.student'},$env{'form.userdom'}) = split(/:/,$processUser); |
($env{'form.student'},$env{'form.userdom'}) = split(/:/,$processUser); |
$env{'form.fullname'} = $$fullname{$processUser}; |
$env{'form.fullname'} = $$fullname{$processUser}; |
Line 3894 sub csvuploadmap_header {
|
Line 3868 sub csvuploadmap_header {
|
$javascript=&csvupload_javascript_forward_associate(); |
$javascript=&csvupload_javascript_forward_associate(); |
} |
} |
|
|
my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
# my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
|
my $result=''; |
my $checked=(($env{'form.noFirstLine'})?' checked="checked"':''); |
my $checked=(($env{'form.noFirstLine'})?' checked="checked"':''); |
my $ignore=&mt('Ignore First Line'); |
my $ignore=&mt('Ignore First Line'); |
$symb = &Apache::lonenc::check_encrypt($symb); |
$symb = &Apache::lonenc::check_encrypt($symb); |
Line 3985 sub upcsvScores_form {
|
Line 3960 sub upcsvScores_form {
|
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $result=&checkforfile_js(); |
my $result=&checkforfile_js(); |
$env{'form.probTitle'} = &Apache::lonnet::gettitle($symb); |
$env{'form.probTitle'} = &Apache::lonnet::gettitle($symb); |
my ($table) = &showResourceInfo($symb,$env{'form.probTitle'}); |
# my ($table) = &showResourceInfo($symb,$env{'form.probTitle'}); |
$result.=$table; |
# $result.=$table; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\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.'). |
Line 8502 sub show_grading_menu_form {
|
Line 8477 sub show_grading_menu_form {
|
return $result; |
return $result; |
} |
} |
|
|
# -- Retrieve choices for grading form |
|
sub savedState { |
|
my %savedState = (); |
|
if ($env{'form.saveState'}) { |
|
foreach (split(/:/,$env{'form.saveState'})) { |
|
my ($key,$value) = split(/=/,$_,2); |
|
$savedState{$key} = $value; |
|
} |
|
} |
|
return \%savedState; |
|
} |
|
|
|
sub grading_menu { |
sub grading_menu { |
my ($request) = @_; |
my ($request) = @_; |
my ($symb)=&get_symb($request); |
my ($symb)=&get_symb($request); |
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $probTitle = &Apache::lonnet::gettitle($symb); |
my $probTitle = &Apache::lonnet::gettitle($symb); |
my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle); |
|
|
|
$request->print($table); |
|
my %fields = ('symb'=>&Apache::lonenc::check_encrypt($symb), |
my %fields = ('symb'=>&Apache::lonenc::check_encrypt($symb), |
'handgrade'=>$hdgrade, |
|
'probTitle'=>$probTitle, |
'probTitle'=>$probTitle, |
'command'=>'submit_options', |
'command'=>'individual', |
'saveState'=>"", |
|
'gradingMenu'=>1, |
'gradingMenu'=>1, |
'showgrading'=>"yes"); |
'showgrading'=>"yes"); |
|
|
my $url1 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url1a = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
|
$fields{'command'}='ungraded'; |
|
my $url1b=&Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
|
$fields{'command'}='table'; |
|
my $url1c=&Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
|
$fields{'command'}='all_for_one'; |
|
my $url1d=&Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
$fields{'command'} = 'csvform'; |
$fields{'command'} = 'csvform'; |
my $url2 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url2 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
Line 8540 sub grading_menu {
|
Line 8508 sub grading_menu {
|
|
|
$fields{'command'} = 'scantron_selectphase'; |
$fields{'command'} = 'scantron_selectphase'; |
my $url4 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
my $url4 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
|
$fields{'command'} = 'initialverifyreceipt'; |
|
my $url5 = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
|
my @menu = ({ categorytitle=>'Course Grading', |
my @menu = ({ categorytitle=>'Hand Grading', |
items =>[ |
items =>[ |
{ linktext => 'Manual Grading/View Submissions', |
{ linktext => 'Select individual students to grade', |
url => $url1, |
url => $url1a, |
permission => 'F', |
permission => 'F', |
icon => 'edit-find-replace.png', |
icon => 'edit-find-replace.png', |
linktitle => 'Start the process of hand grading submissions.' |
linktitle => 'Grade current resource for a selection of students.' |
|
}, |
|
{ linktext => 'Grade ungraded submissions.', |
|
url => $url1b, |
|
permission => 'F', |
|
icon => 'edit-find-replace.png', |
|
linktitle => 'Grade all submissions that have not been graded yet.' |
|
}, |
|
|
|
{ linktext => 'Grading table', |
|
url => $url1c, |
|
permission => 'F', |
|
icon => 'edit-find-replace.png', |
|
linktitle => 'Grade current resource for all students.' |
}, |
}, |
|
{ linktext => 'Grade complete page/sequence/folder for one student', |
|
url => $url1d, |
|
permission => 'F', |
|
icon => 'edit-find-replace.png', |
|
linktitle => 'Grade all resources in current page/sequence/folder for one student.' |
|
}]}, |
|
{ categorytitle=>'Automated Grading', |
|
items =>[ |
|
|
{ linktext => 'Upload Scores', |
{ linktext => 'Upload Scores', |
url => $url2, |
url => $url2, |
permission => 'F', |
permission => 'F', |
Line 8566 sub grading_menu {
|
Line 8559 sub grading_menu {
|
permission => 'F', |
permission => 'F', |
icon => 'stat.png', |
icon => 'stat.png', |
linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.' |
linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.' |
} |
}, |
|
{ linktext => 'Verify Receipt No.', |
|
url => $url5, |
|
permission => 'F', |
|
icon => 'edit-find-replace.png', |
|
linktitle => 'Verify a system-generated receipt number for correct problem solution.' |
|
} |
|
|
] |
] |
}); |
}); |
|
|
#$fields{'command'} = 'verify'; |
|
#$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields); |
|
# |
|
# Create the menu |
# Create the menu |
my $Str; |
my $Str; |
# $Str .= '<h2>'.&mt('Please select a grading task').'</h2>'; |
|
$Str .= '<form method="post" action="" name="gradingMenu">'; |
$Str .= '<form method="post" action="" name="gradingMenu">'; |
$Str .= '<input type="hidden" name="command" value="" />'. |
$Str .= '<input type="hidden" name="command" value="" />'. |
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="handgrade" value="'.$hdgrade.'" />'."\n". |
|
'<input type="hidden" name="probTitle" value="'.$probTitle.'" />'."\n". |
'<input type="hidden" name="probTitle" value="'.$probTitle.'" />'."\n". |
'<input type="hidden" name="saveState" value="" />'."\n". |
|
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
|
|
$Str .= Apache::lonhtmlcommon::generate_menu(@menu); |
$Str .= &Apache::lonhtmlcommon::generate_menu(@menu); |
#$menudata->{'jscript'} |
return $Str; |
$Str .='<hr /><input type="button" value="'.&mt('Verify Receipt No.').'" '. |
} |
' onclick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '. |
|
' /> '. |
|
&Apache::lonnet::recprefix($env{'request.course.id'}). |
|
'-<input type="text" name="receipt" size="4" onchange="javascript:checkReceiptNo(this.form,\'OK\')" />'; |
|
|
|
$Str .="</form>\n"; |
|
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box."); |
|
$request->print(&Apache::lonhtmlcommon::scripttag(<<GRADINGMENUJS)); |
|
function checkChoice(formname,val,cmdx) { |
|
if (val <= 2) { |
|
var cmd = radioSelection(formname.radioChoice); |
|
var cmdsave = cmd; |
|
} else { |
|
cmd = cmdx; |
|
cmdsave = 'submission'; |
|
} |
|
formname.command.value = cmd; |
|
if (val < 5) formname.submit(); |
|
if (val == 5) { |
|
if (!checkReceiptNo(formname,'notOK')) { |
|
return false; |
|
} else { |
|
formname.submit(); |
|
} |
|
} |
|
} |
|
|
|
function checkReceiptNo(formname,nospace) { |
sub ungraded { |
var receiptNo = formname.receipt.value; |
my ($request)=@_; |
var checkOpt = false; |
&submit_options($request); |
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
} |
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
|
if (checkOpt) { |
sub submit_options_sequence { |
alert("$receiptalert"); |
my ($request) = @_; |
formname.receipt.value = ""; |
my ($symb)=&get_symb($request); |
formname.receipt.focus(); |
if (!$symb) {return '';} |
return false; |
|
} |
|
return true; |
|
} |
|
GRADINGMENUJS |
|
&commonJSfunctions($request); |
&commonJSfunctions($request); |
return $Str; |
my $result; |
|
|
|
$result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n". |
|
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
|
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
|
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
|
|
|
$result.=' |
|
<h2> |
|
'.&mt('Grade complete page/sequence/folder for one student').' |
|
</h2>'. |
|
&selectfield(0). |
|
'<input type="hidden" name="command" value="pickStudentPage" /> |
|
<div> |
|
<input type="submit" value="'.&mt('Next').' →" /> |
|
</div> |
|
</div> |
|
</form>'; |
|
$result .= &show_grading_menu_form($symb); |
|
return $result; |
} |
} |
|
|
|
sub submit_options_table { |
|
my ($request) = @_; |
|
my ($symb)=&get_symb($request); |
|
if (!$symb) {return '';} |
|
&commonJSfunctions($request); |
|
my $result; |
|
|
|
$result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n". |
|
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
|
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
|
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
|
|
|
$result.=' |
|
<h2> |
|
'.&mt('Grading table').' |
|
</h2>'. |
|
&selectfield(0). |
|
'<input type="hidden" name="command" value="viewgrades" /> |
|
<div> |
|
<input type="submit" value="'.&mt('Next').' →" /> |
|
</div> |
|
</div> |
|
</form>'; |
|
$result .= &show_grading_menu_form($symb); |
|
return $result; |
|
} |
|
|
|
|
|
|
#--- Displays the submissions first page ------- |
#--- Displays the submissions first page ------- |
sub submit_options { |
sub submit_options { |
Line 8641 sub submit_options {
|
Line 8652 sub submit_options {
|
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $probTitle = &Apache::lonnet::gettitle($symb); |
my $probTitle = &Apache::lonnet::gettitle($symb); |
|
|
my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box."); |
|
$request->print(&Apache::lonhtmlcommon::scripttag(<<GRADINGMENUJS)); |
|
function checkChoice(formname,val,cmdx) { |
|
if (val <= 2) { |
|
var cmd = radioSelection(formname.radioChoice); |
|
var cmdsave = cmd; |
|
} else { |
|
cmd = cmdx; |
|
cmdsave = 'submission'; |
|
} |
|
formname.command.value = cmd; |
|
formname.saveState.value = "saveCmd="+cmdsave+":saveSec="+pullDownSelection(formname.section)+ |
|
":saveSub="+pullDownSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.Status); |
|
if (val < 5) formname.submit(); |
|
if (val == 5) { |
|
if (!checkReceiptNo(formname,'notOK')) { return false;} |
|
formname.submit(); |
|
} |
|
if (val < 7) formname.submit(); |
|
} |
|
|
|
function checkReceiptNo(formname,nospace) { |
|
var receiptNo = formname.receipt.value; |
|
var checkOpt = false; |
|
if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;} |
|
if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;} |
|
if (checkOpt) { |
|
alert("$receiptalert"); |
|
formname.receipt.value = ""; |
|
formname.receipt.focus(); |
|
return false; |
|
} |
|
return true; |
|
} |
|
GRADINGMENUJS |
|
&commonJSfunctions($request); |
&commonJSfunctions($request); |
my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle); |
|
my $result; |
my $result; |
my (undef,$sections) = &getclasslist('all','0'); |
|
my $savedState = &savedState(); |
|
my $saveCmd = ($$savedState{'saveCmd'} eq '' ? 'submission' : $$savedState{'saveCmd'}); |
|
my $saveSec = ($$savedState{'saveSec'} eq '' ? 'all' : $$savedState{'saveSec'}); |
|
my $saveSub = ($$savedState{'saveSub'} eq '' ? 'all' : $$savedState{'saveSub'}); |
|
my $saveStatus = ($$savedState{'saveStatus'} eq '' ? 'Active' : $$savedState{'saveStatus'}); |
|
|
|
# Preselect sections |
|
my $selsec=""; |
|
if (ref($sections)) { |
|
foreach my $section (sort(@$sections)) { |
|
$selsec.='<option value="'.$section.'" '. |
|
($saveSec eq $section ? 'selected="selected"':'').'>'.$section.'</option>'."\n"; |
|
} |
|
} |
|
|
|
$result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n". |
$result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n". |
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". |
'<input type="hidden" name="handgrade" value="'.$hdgrade.'" />'."\n". |
|
'<input type="hidden" name="probTitle" value="'.$probTitle.'" />'."\n". |
'<input type="hidden" name="probTitle" value="'.$probTitle.'" />'."\n". |
'<input type="hidden" name="command" value="" />'."\n". |
|
'<input type="hidden" name="saveState" value="" />'."\n". |
|
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="gradingMenu" value="1" />'."\n". |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
'<input type="hidden" name="showgrading" value="yes" />'."\n"; |
|
|
$result.=' |
$result.=' |
<h2> |
<h2> |
'.&mt('Grade Current Resource').' |
'.&mt('Select individual students to grade').' |
</h2> |
</h2>'.&selectfield(1).' |
<div> |
<input type="hidden" name="command" value="submission" /> |
'.$table.' |
<input type="submit" value="'.&mt('Next').' →" /> |
</div> |
</div> |
|
</div> |
|
|
<div class="LC_columnSection"> |
|
|
</form>'; |
|
$result .= &show_grading_menu_form($symb); |
|
return $result; |
|
} |
|
|
|
sub selectfield { |
|
my ($full)=@_; |
|
my $result='<div class="LC_columnSection"> |
|
|
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Sections').' |
'.&mt('Sections').' |
</legend> |
</legend> |
<select name="section" multiple="multiple" size="5">'."\n"; |
'.&Apache::lonstatistics::SectionSelect('section','multiple',5).' |
$result.= $selsec; |
|
$result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> '; |
|
$result.=' |
|
</fieldset> |
</fieldset> |
|
|
<fieldset> |
<fieldset> |
Line 8735 GRADINGMENUJS
|
Line 8698 GRADINGMENUJS
|
<legend> |
<legend> |
'.&mt('Access Status').' |
'.&mt('Access Status').' |
</legend> |
</legend> |
'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').' |
'.&Apache::lonhtmlcommon::StatusOptions(undef,undef,5,undef,'mult').' |
</fieldset> |
</fieldset>'; |
|
if ($full) { |
|
$result.=' |
<fieldset> |
<fieldset> |
<legend> |
<legend> |
'.&mt('Submission Status').' |
'.&mt('Submission Status').' |
</legend> |
</legend>'. |
<select name="submitonly" size="5"> |
&Apache::loncommon::select_form('all','submitonly', |
<option value="yes" '. ($saveSub eq 'yes' ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option> |
(&Apache::lonlocal::texthash( |
<option value="queued" '. ($saveSub eq 'queued' ? 'selected="selected"' : '').'>'.&mt('in grading queue').'</option> |
'yes' => 'with submissions', |
<option value="graded" '. ($saveSub eq 'graded' ? 'selected="selected"' : '').'>'.&mt('with ungraded submissions').'</option> |
'queued' => 'in grading queue', |
<option value="incorrect" '.($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option> |
'graded' => 'with ungraded submissions', |
<option value="all" '. ($saveSub eq 'all' ? 'selected="selected"' : '').'>'.&mt('with any status').'</option> |
'incorrect' => 'with incorrect submissions', |
</select> |
'all' => 'with any status'), |
</fieldset> |
'select_form_order' => ['yes','queued','graded','incorrect','all'])). |
|
'</fieldset>'; |
</div> |
} |
|
$result.='</div><br />'; |
<br /> |
|
<div> |
|
<div> |
|
<label> |
|
<input type="radio" name="radioChoice" value="submission" '. |
|
($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '. |
|
&mt('Select individual students to grade and view submissions.').' |
|
</label> |
|
</div> |
|
<div> |
|
<label> |
|
<input type="radio" name="radioChoice" value="viewgrades" '. |
|
($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '. |
|
&mt('Grade all selected students in a grading table.').' |
|
</label> |
|
</div> |
|
<div> |
|
<input type="button" onclick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" /> |
|
</div> |
|
</div> |
|
|
|
|
|
<h2> |
|
'.&mt('Grade Complete Folder for One Student').' |
|
</h2> |
|
<div> |
|
<div> |
|
<label> |
|
<input type="radio" name="radioChoice" value="pickStudentPage" '. |
|
($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '. |
|
&mt('The <b>complete</b> page/sequence/folder: For one student').' |
|
</label> |
|
</div> |
|
<div> |
|
<input type="button" onclick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' →" /> |
|
</div> |
|
</div> |
|
</form>'; |
|
$result .= &show_grading_menu_form($symb); |
|
return $result; |
return $result; |
} |
} |
|
|
Line 8884 sub process_clicker {
|
Line 8809 sub process_clicker {
|
if (!$symb) {return '';} |
if (!$symb) {return '';} |
my $result=&checkforfile_js(); |
my $result=&checkforfile_js(); |
$env{'form.probTitle'} = &Apache::lonnet::gettitle($symb); |
$env{'form.probTitle'} = &Apache::lonnet::gettitle($symb); |
my ($table) = &showResourceInfo($symb,$env{'form.probTitle'}); |
|
$result.=$table; |
|
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<br /><table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"; |
$result.='<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\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"; |
'</b></td></tr>'."\n"; |
$result.='<tr bgcolor=#ffffe6><td>'."\n"; |
$result.='<tr bgcolor="#ffffe6"><td>'."\n"; |
# Attempt to restore parameters from last session, set defaults if not present |
# Attempt to restore parameters from last session, set defaults if not present |
my %Saveable_Parameters=&clicker_grading_parameters(); |
my %Saveable_Parameters=&clicker_grading_parameters(); |
&Apache::loncommon::restore_course_settings('grades_clicker', |
&Apache::loncommon::restore_course_settings('grades_clicker', |
Line 8994 sub process_clicker_file {
|
Line 8917 sub process_clicker_file {
|
my %Saveable_Parameters=&clicker_grading_parameters(); |
my %Saveable_Parameters=&clicker_grading_parameters(); |
&Apache::loncommon::store_course_settings('grades_clicker', |
&Apache::loncommon::store_course_settings('grades_clicker', |
\%Saveable_Parameters); |
\%Saveable_Parameters); |
|
my $result=''; |
my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
# my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
if (($env{'form.gradingmechanism'} eq 'specific') && ($env{'form.specificid'}!~/\w/)) { |
if (($env{'form.gradingmechanism'} eq 'specific') && ($env{'form.specificid'}!~/\w/)) { |
$result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>'; |
$result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>'; |
return $result.&show_grading_menu_form($symb); |
return $result.&show_grading_menu_form($symb); |
Line 9234 sub assign_clicker_grades {
|
Line 9157 sub assign_clicker_grades {
|
# FIXME: This should probably look for the first handgradeable part |
# FIXME: This should probably look for the first handgradeable part |
my $part=$$partlist[0]; |
my $part=$$partlist[0]; |
# Start screen output |
# Start screen output |
my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
my $result=''; |
|
# my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); |
|
|
my $heading=&mt('Assigning grades based on clicker file'); |
my $heading=&mt('Assigning grades based on clicker file'); |
$result.=(<<ENDHEADER); |
$result.=(<<ENDHEADER); |
Line 9365 sub handler {
|
Line 9289 sub handler {
|
$request->print(&Apache::loncommon::start_page('Grading',undef, |
$request->print(&Apache::loncommon::start_page('Grading',undef, |
{'bread_crumbs' => $brcrum})); |
{'bread_crumbs' => $brcrum})); |
if ($symb eq '' && $command eq '') { |
if ($symb eq '' && $command eq '') { |
if ($env{'user.adv'}) { |
# |
if (($env{'form.codeone'}) && ($env{'form.codetwo'}) && |
# Not called from a resource |
($env{'form.codethree'})) { |
# |
my $token=$env{'form.codeone'}.'*'.$env{'form.codetwo'}.'*'. |
|
$env{'form.codethree'}; |
|
my ($tsymb,$tuname,$tudom,$tcrsid)= |
|
&Apache::lonnet::checkin($token); |
|
if ($tsymb) { |
|
my ($map,$id,$url)=&Apache::lonnet::decode_symb($tsymb); |
|
if (&Apache::lonnet::allowed('mgr',$tcrsid)) { |
|
$request->print(&ssi_with_retries('/res/'.$url, $ssi_retries, |
|
('grade_username' => $tuname, |
|
'grade_domain' => $tudom, |
|
'grade_courseid' => $tcrsid, |
|
'grade_symb' => $tsymb))); |
|
} else { |
|
$request->print('<h3>Not authorized: '.$token.'</h3>'); |
|
} |
|
} else { |
|
$request->print('<h3>Not a valid DocID: '.$token.'</h3>'); |
|
} |
|
} else { |
|
$request->print(&Apache::lonxml::tokeninputfield()); |
|
} |
|
} |
|
} else { |
} else { |
&init_perm(); |
&init_perm(); |
if ($command eq 'submission' && $perm{'vgr'}) { |
if ($command eq 'submission' && $perm{'vgr'}) { |
Line 9404 sub handler {
|
Line 9307 sub handler {
|
&processGroup($request); |
&processGroup($request); |
} elsif ($command eq 'gradingmenu' && $perm{'vgr'}) { |
} elsif ($command eq 'gradingmenu' && $perm{'vgr'}) { |
$request->print(&grading_menu($request)); |
$request->print(&grading_menu($request)); |
} elsif ($command eq 'submit_options' && $perm{'vgr'}) { |
} elsif ($command eq 'individual' && $perm{'vgr'}) { |
$request->print(&submit_options($request)); |
$request->print(&submit_options($request)); |
|
} elsif ($command eq 'ungraded' && $perm{'vgr'}) { |
|
$request->print(&submit_options($request)); |
|
} elsif ($command eq 'table' && $perm{'vgr'}) { |
|
$request->print(&submit_options_table($request)); |
|
} elsif ($command eq 'all_for_one' && $perm{'vgr'}) { |
|
$request->print(&submit_options_sequence($request)); |
} elsif ($command eq 'viewgrades' && $perm{'vgr'}) { |
} elsif ($command eq 'viewgrades' && $perm{'vgr'}) { |
$request->print(&viewgrades($request)); |
$request->print(&viewgrades($request)); |
} elsif ($command eq 'handgrade' && $perm{'mgr'}) { |
} elsif ($command eq 'handgrade' && $perm{'mgr'}) { |
$request->print(&processHandGrade($request)); |
$request->print(&processHandGrade($request)); |
} elsif ($command eq 'editgrades' && $perm{'mgr'}) { |
} elsif ($command eq 'editgrades' && $perm{'mgr'}) { |
$request->print(&editgrades($request)); |
$request->print(&editgrades($request)); |
|
} elsif ($command eq 'initialverifyreceipt' && $perm{'vgr'}) { |
|
$request->print(&initialverifyreceipt($request)); |
} elsif ($command eq 'verify' && $perm{'vgr'}) { |
} elsif ($command eq 'verify' && $perm{'vgr'}) { |
$request->print(&verifyreceipt($request)); |
$request->print(&verifyreceipt($request)); |
} elsif ($command eq 'processclicker' && $perm{'mgr'}) { |
} elsif ($command eq 'processclicker' && $perm{'mgr'}) { |