';
+ if ($uploadedfiletypes ne '*') {
+ $result.=
+ &mt('Allowed filetypes: [_1]',$uploadedfiletypes).' ';
+ }
if ($which eq 'uploadonly' || $which eq 'both') {
$result.=&mt('Submit a file: (only one file can be uploaded)').
'
';
+ $jspart.'_'.$id.'" /> ';
my $uploadedfile= &HTML::Entities::encode($Apache::lonhomework::history{"resource.$part.$id.uploadedfile"},'<>&"');
if ($uploadedfile) {
@@ -330,20 +338,20 @@ sub file_selector {
$result.=' '.''.&mt('OR:').' ';
}
if ($which eq 'portfolioonly' || $which eq 'both') {
- $result.=''.
+ $result.=''.
&mt('Select Portfolio Files').' '.
- ''.
+ ''.
' ';
if ($Apache::lonhomework::history{"resource.$part.$id.portfiles"}=~/[^\s]/){
- my $filelist;
+ my @filelist;
foreach my $file (split(',',&Apache::lonnet::unescape($Apache::lonhomework::history{"resource.$part.$id.portfiles"}))) {
my (undef,undef,$domain,$user)=&Apache::lonxml::whichuser();
my $url="/uploaded/$domain/$user/portfolio$file";
my $icon=&Apache::loncommon::icon($url);
- $filelist.=''.$file.'';
+ push(@filelist,''.$file.'');
}
- $result.=&mt("Portfolio files previously selected: [_1]",$filelist);
+ $result.=&mt("Portfolio files previously selected: [_1]",join(', ',@filelist));
}
}
$result.='
';
@@ -393,7 +401,7 @@ sub finalizeawards {
}
sub decideoutput {
- my ($award,$awardmsg,$solved,$previous,$target)=@_;
+ my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_;
my $message='';
my $button=0;
my $previousmsg;
@@ -405,28 +413,40 @@ sub decideoutput {
'not_charged_try' => '#ffffaa',
'no_message' => '#fffff',
);
+
if ($previous) { $previousmsg=&mt('You have entered that answer before'); }
if ($solved =~ /^correct/) {
- if ($award eq 'ASSIGNED_SCORE') {
- $message = &mt("A score has been assigned.");
+ $bgcolor=$possiblecolors{'correct'};
+ $message=&mt('You are correct.');
+ if ($awarded < 1 && $awarded > 0) {
+ $message=&mt('You are partially correct.');
+ $bgcolor=$possiblecolors{'not_charged_try'};
+ } elsif ($awarded < 1) {
+ $message=&mt('Incorrect.');
+ $bgcolor=$possiblecolors{'charged_try'};
+ }
+
+ if ($target eq 'tex') {
+ $message = '\textbf{'.$message.'}';
} else {
- if ($target eq 'tex') {
- $message = '\textbf{'.&mt('You are correct.').'}';
- } else {
- $message = "".&mt('You are correct.')."";
+ $message = "".$message."";
+ }
+ $added_computer_text=1;
+
+ if ($env{'request.filename'} !~
+ m|/res/lib/templates/examupload.problem$|) {
+ if ($target ne 'tex') {
$message.=" ".&mt("Computer's answer now shown above.");
}
- $added_computer_text=1;
- unless ($ENV{'course.'.
- $ENV{'request.course.id'}.
+ unless ($env{'course.'.
+ $env{'request.course.id'}.
'.disable_receipt_display'} eq 'yes') {
$message.=(($target eq 'web')?' ':' ').
&mt('Your receipt is').' '.&Apache::lonnet::receipt($Apache::inputtags::part).
(($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
}
}
- $bgcolor=$possiblecolors{'correct'};
$button=0;
$previousmsg='';
} elsif ($solved =~ /^excused/) {
@@ -451,8 +471,8 @@ sub decideoutput {
$message.=" ".&mt("Computer's answer now shown above.");
}
$added_computer_text=1;
- unless ($ENV{'course.'.
- $ENV{'request.course.id'}.
+ unless ($env{'course.'.
+ $env{'request.course.id'}.
'.disable_receipt_display'} eq 'yes') {
$message.=(($target eq 'web')?' ':' ').
'Your receipt is '.&Apache::lonnet::receipt($Apache::inputtags::part).
@@ -490,7 +510,7 @@ sub decideoutput {
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'INVALID_FILETYPE') {
- $message = &mt('The filetype extension of the file you uploaded is not allowed.');
+ $message = &mt('Submission won\'t be graded. The type of file submitted is not allowed.');
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'SIG_FAIL') {
@@ -606,10 +626,10 @@ sub hidealldata {
sub setgradedata {
my ($award,$msg,$id,$previously_used) = @_;
if ($Apache::lonhomework::scantronmode &&
- &Apache::lonnet::validCODE($ENV{'form.CODE'})) {
- $Apache::lonhomework::results{"resource.CODE"}=$ENV{'form.CODE'};
+ &Apache::lonnet::validCODE($env{'form.CODE'})) {
+ $Apache::lonhomework::results{"resource.CODE"}=$env{'form.CODE'};
} elsif ($Apache::lonhomework::scantronmode &&
- $ENV{'form.CODE'} eq '' &&
+ $env{'form.CODE'} eq '' &&
$Apache::lonhomework::history{"resource.CODE"} ne '') {
$Apache::lonhomework::results{"resource.CODE"}='';
}
@@ -726,7 +746,7 @@ sub grade {
my ($target) = @_;
my $id = $Apache::inputtags::part;
my $response='';
- if ( defined $ENV{'form.submitted'}) {
+ if ( defined $env{'form.submitted'}) {
my (@awards,@msgs);
foreach $response (@Apache::inputtags::response) {
&Apache::lonxml::debug("looking for response.$id.$response.awarddetail");
@@ -779,6 +799,7 @@ sub gradestatus {
if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE' &&
$status ne 'INVALID_ACCESS') {
my $award = $Apache::lonhomework::history{"resource.$id.award"};
+ my $awarded = $Apache::lonhomework::history{"resource.$id.awarded"};
my $solved = $Apache::lonhomework::history{"resource.$id.solved"};
my $previous = $Apache::lonhomework::history{"resource.$id.previous"};
my $awardmsg = $Apache::lonhomework::history{"resource.$id.awardmsg"};
@@ -786,7 +807,8 @@ sub gradestatus {
if ( $award ne '' || $solved ne '' || $status eq 'SHOW_ANSWER') {
&Apache::lonxml::debug('Getting message');
($showbutton,$bgcolor,$message,$previousmsg) =
- &decideoutput($award,$awardmsg,$solved,$previous,$target);
+ &decideoutput($award,$awarded,$awardmsg,$solved,$previous,
+ $target);
if ($target eq 'tex') {
$message='\vskip 2 mm '.$message.' ';
} else {
@@ -805,17 +827,21 @@ sub gradestatus {
if ( $maxtries eq '' ) { $maxtries = '2'; }
if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; }
my $tries_text=&mt('Tries');
- if ( $Apache::lonhomework::type eq 'survey') { $tries_text=&mt('Submissions'); }
+ if ( $Apache::lonhomework::type eq 'survey' ||
+ $Apache::lonhomework::parsing_a_task) {
+ $tries_text=&mt('Submissions');
+ }
if ( $showbutton ) {
if ($target eq 'tex') {
- if ($ENV{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam' && $ENV{'form.suppress_tries'} ne 'yes') {
+ if ($env{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam' && $env{'form.suppress_tries'} ne 'yes') {
$trystr = ' {\vskip 1 mm \small \textit{'.$tries_text.'} '.$tries.'/'.$maxtries.'} \vskip 2 mm ';
} else {
$trystr = '\vskip 0 mm ';
}
} else {
$trystr = "
".$tries_text." $tries";
- if($ENV{'request.state'} ne 'construct') {
+ if ($Apache::lonhomework::parsing_a_task) {
+ } elsif($env{'request.state'} ne 'construct') {
$trystr.="/$maxtries";
} else {
if (defined($Apache::inputtags::params{'maxtries'})) {
@@ -833,10 +859,9 @@ sub gradestatus {
}
if ($Apache::lonhomework::history{"resource.$id.afterduedate"}) {
#last submissions was after due date
- if ($target eq 'tex') {
- $latemessage=' The last submission was after the Due Date ';
- } else {
- $latemessage="
The last submission was after the Due Date
";
+ $latemessage=&mt(' The last submission was after the Due Date ');;
+ if ($target eq 'web') {
+ $latemessage='