version 1.249, 2008/11/25 13:16:17
|
version 1.255, 2009/01/15 18:31:15
|
Line 461 sub end_hiddenline {
|
Line 461 sub end_hiddenline {
|
$part -> partid |
$part -> partid |
$id -> responseid |
$id -> responseid |
$uploadefiletypes -> comma seperated list of extensions allowed or * for any |
$uploadefiletypes -> comma seperated list of extensions allowed or * for any |
$which -> 'uploadedonly' -> only newly uploaded files |
$which -> 'uploadonly' -> only newly uploaded files |
'portfolioonly' -> only allow files from portfolio |
'portfolioonly' -> only allow files from portfolio |
'both' -> allow files from either location |
'both' -> allow files from either location |
$extratext -> additional text to go between the link and the input box |
$extratext -> additional text to go between the link and the input box |
|
$maxfilesize -> maximum cumulative filesize for submitted files (in MB). |
returns a table row <tr> |
returns a table row <tr> |
|
|
=cut |
=cut |
|
|
sub file_selector { |
sub file_selector { |
my ($part,$id,$uploadedfiletypes,$which,$extratext)=@_; |
my ($part,$id,$uploadedfiletypes,$which,$extratext,$maxfilesize)=@_; |
if (!$uploadedfiletypes) { return ''; } |
if (!$uploadedfiletypes) { return ''; } |
|
|
my $jspart=$part; |
my $jspart=$part; |
Line 479 sub file_selector {
|
Line 480 sub file_selector {
|
my $result; |
my $result; |
|
|
$result.='<tr><td>'; |
$result.='<tr><td>'; |
if ($uploadedfiletypes ne '*') { |
if (($uploadedfiletypes ne '*') || ($maxfilesize)) { |
$result.= |
if ($uploadedfiletypes ne '*') { |
&mt('Allowed filetypes: <b>[_1]</b>',$uploadedfiletypes).'<br />'; |
$result.= |
|
&mt('Allowed filetypes: [_1]','<b>'.$uploadedfiletypes.'</b>').'<br />'; |
|
} |
|
if ($maxfilesize) { |
|
$result.=&mt('Combined size of files not to exceed: [_1] MB[_2].', |
|
'<b>'.$maxfilesize.'</b>').'<br />'; |
|
} |
|
$result .= '<br />'; |
} |
} |
if ($which eq 'uploadonly' || $which eq 'both') { |
if ($which eq 'uploadonly' || $which eq 'both') { |
$result.=&mt('Submit a file: (only one file can be uploaded)'). |
$result.=&mt('Submit a file: (only one file can be uploaded)'). |
Line 498 sub file_selector {
|
Line 506 sub file_selector {
|
'<input type="text" size="50" name="HWPORT'.$jspart.'_'.$id.'" value="" />'. |
'<input type="text" size="50" name="HWPORT'.$jspart.'_'.$id.'" value="" />'. |
'<br />'; |
'<br />'; |
$result .= &show_past_portfile_submission($part,$id); |
$result .= &show_past_portfile_submission($part,$id); |
|
|
} |
} |
$result.='</td></tr>'; |
$result.='</td></tr>'; |
return $result; |
return $result; |
Line 516 sub show_past_file_submission {
|
Line 523 sub show_past_file_submission {
|
my $icon=&Apache::loncommon::icon($url); |
my $icon=&Apache::loncommon::icon($url); |
my $curfile='<a href="'.$url.'"><img src="'.$icon. |
my $curfile='<a href="'.$url.'"><img src="'.$icon. |
'" border="0" />'.$uploadedfile.'</a>'; |
'" border="0" />'.$uploadedfile.'</a>'; |
return &mt('Currently submitted: <tt>[_1]</tt>',$curfile); |
return &mt('Currently submitted: [_1]','<tt>'.$curfile.'</tt>'); |
|
|
} |
} |
|
|
Line 546 sub show_past_portfile_submission {
|
Line 553 sub show_past_portfile_submission {
|
my $bad_files = '<span class="LC_filename">'. |
my $bad_files = '<span class="LC_filename">'. |
join('</span>, <span class="LC_filename">',@bad_file_list). |
join('</span>, <span class="LC_filename">',@bad_file_list). |
'</span>'; |
'</span>'; |
$result.='<br />'.&mt('<span class="LC_error">These file(s) don\'t exist:</span> [_1]',$bad_files); |
$result.='<p><span class="LC_error">' |
|
.&mt("These file(s) don't exist: [_1]",$bad_files) |
|
.'</span></p>'; |
} |
} |
return $result; |
return $result; |
|
|
Line 560 sub valid_award {
|
Line 569 sub valid_award {
|
'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', |
'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', |
'UNIT_FAIL', 'NO_UNIT', |
'UNIT_FAIL', 'NO_UNIT', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', |
'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', |
'BAD_FORMULA', 'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT', |
'MISORDERED_RANK', 'INVALID_FILETYPE', |
'MISORDERED_RANK', 'INVALID_FILETYPE', |
'EXCESS_FILESIZE', 'DRAFT', |
'EXCESS_FILESIZE', 'DRAFT', |
'SUBMITTED', 'ASSIGNED_SCORE', |
'SUBMITTED', 'ASSIGNED_SCORE', |
Line 575 sub valid_award {
|
Line 584 sub valid_award {
|
'TOO_LONG', |
'TOO_LONG', |
'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', |
'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', |
'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', |
'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'INTERNAL_ERROR', |
'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', |
'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', |
'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'DRAFT', 'SUBMITTED', |
'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'DRAFT', 'SUBMITTED', |
'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS'); |
'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS'); |
Line 623 sub finalizeawards {
|
Line 632 sub finalizeawards {
|
return ('NO_RESPONSE'); |
return ('NO_RESPONSE'); |
} |
} |
} |
} |
|
|
|
if ($Apache::lonxml::internal_error) { $result='INTERNAL_ERROR'; } |
|
|
if (!$final_scantron && defined($result)) { return ($result); } |
if (!$final_scantron && defined($result)) { return ($result); } |
|
|
# if in scantron mode, if the award for any response is |
# if in scantron mode, if the award for any response is |
Line 669 sub finalizeawards {
|
Line 681 sub finalizeawards {
|
|
|
sub decideoutput { |
sub decideoutput { |
my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_; |
my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_; |
|
|
my $message=''; |
my $message=''; |
my $button=0; |
my $button=0; |
my $previousmsg; |
my $previousmsg; |
Line 803 sub decideoutput {
|
Line 816 sub decideoutput {
|
$message = &mt('Submission won\'t be graded. The combined size of submitted files exceeded the amount allowed.'); |
$message = &mt('Submission won\'t be graded. The combined size of submitted files exceeded the amount allowed.'); |
$css_class=$possible_class{'not_charged_try'}; |
$css_class=$possible_class{'not_charged_try'}; |
$button=1; |
$button=1; |
|
|
} elsif ($award eq 'INVALID_FILETYPE') { |
} elsif ($award eq 'INVALID_FILETYPE') { |
$message = &mt('Submission won\'t be graded. The type of file submitted is not allowed.'); |
$message = &mt("Submission won't be graded. The type of file submitted is not allowed."); |
$css_class=$possible_class{'not_charged_try'}; |
$css_class=$possible_class{'not_charged_try'}; |
$button=1; |
$button=1; |
} elsif ($award eq 'SIG_FAIL') { |
} elsif ($award eq 'SIG_FAIL') { |
my ($used,$min,$max)=split(':',$awardmsg); |
my ($used,$min,$max)=split(':',$awardmsg); |
my $word = ($used < $min) ? 'more' : 'fewer'; |
my $word = ($used < $min) ? 'more' : 'fewer'; |
$message = &mt("Submission not graded. Use $word digits.",$used); |
$message = &mt("Submission not graded. Use $word digits.",$used); |
$css_class=$possible_class{'not_charged_try'}; |
$css_class=$possible_class{'not_charged_try'}; |
$button=1; |
$button=1; |
} elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') { |
} elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') { |
Line 847 sub decideoutput {
|
Line 859 sub decideoutput {
|
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')}; |
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')}; |
$css_class=$possible_class{'not_charged_try'}; |
$css_class=$possible_class{'not_charged_try'}; |
$button=1; |
$button=1; |
|
} elsif ($award eq 'INTERNAL_ERROR') { |
|
$message = &mt("An internal error occurred while processing your answer. Please try again later."); |
|
$css_class=$possible_class{'not_charged_try'}; |
|
$button=1; |
} elsif ($award eq 'INCORRECT') { |
} elsif ($award eq 'INCORRECT') { |
$message = &mt("Incorrect").'.'; |
$message = &mt("Incorrect").'.'; |
$css_class=$possible_class{'charged_try'}; |
$css_class=$possible_class{'charged_try'}; |
Line 878 sub decideoutput {
|
Line 894 sub decideoutput {
|
my (undef,undef,$domain,$user)=&Apache::lonnet::whichuser(); |
my (undef,undef,$domain,$user)=&Apache::lonnet::whichuser(); |
foreach my $resid(@Apache::inputtags::response){ |
foreach my $resid(@Apache::inputtags::response){ |
if ($Apache::lonhomework::history{"resource.$part.$resid.handback"}) { |
if ($Apache::lonhomework::history{"resource.$part.$resid.handback"}) { |
$message.='<br />'; |
if ($target eq 'tex') { |
|
$message.= "\\\\\n"; |
|
} else { |
|
$message.='<br />'; |
|
} |
my @files = split(/\s*,\s*/, |
my @files = split(/\s*,\s*/, |
$Apache::lonhomework::history{"resource.$part.$resid.handback"}); |
$Apache::lonhomework::history{"resource.$part.$resid.handback"}); |
my $file_msg; |
my $file_msg; |
foreach my $file (@files) { |
foreach my $file (@files) { |
$file_msg.= '<br /><a href="/uploaded/'."$domain/$user".'/'.$file.'">'.$file.'</a>'; |
if ($target eq 'tex') { |
|
$file_msg.= "\\\\\n".$file; |
|
} else { |
|
$file_msg.= '<br /><a href="/uploaded/'."$domain/$user".'/'.$file.'">'.$file.'</a>'; |
|
} |
} |
} |
$message .= &mt('Returned file(s): [_1]',$file_msg); |
$message .= &mt('Returned file(s): [_1]',$file_msg); |
|
if ($target eq 'tex') { |
|
$message.= "\\\\\n"; |
|
} else { |
|
$message.='<br />'; |
|
} |
} |
} |
} |
} |
|
|
Line 1207 sub get_grade_messages {
|
Line 1236 sub get_grade_messages {
|
$trystr = '\vskip 0 mm '; |
$trystr = '\vskip 0 mm '; |
} |
} |
} else { |
} else { |
$trystr = "<td><nobr>".$tries_text." $tries"; |
$trystr = '<td><span class="LC_nobreak">'.$tries_text." $tries"; |
if ($Apache::lonhomework::parsing_a_task) { |
if ($Apache::lonhomework::parsing_a_task) { |
} elsif($env{'request.state'} ne 'construct') { |
} elsif($env{'request.state'} ne 'construct') { |
$trystr.="/$maxtries"; |
$trystr.="/$maxtries"; |
Line 1216 sub get_grade_messages {
|
Line 1245 sub get_grade_messages {
|
$trystr.="/".$Apache::inputtags::params{'maxtries'}; |
$trystr.="/".$Apache::inputtags::params{'maxtries'}; |
} |
} |
} |
} |
$trystr.="</nobr></td>"; |
$trystr.="</span></td>"; |
} |
} |
} |
} |
|
|