--- loncom/homework/inputtags.pm 2007/11/17 02:03:46 1.235 +++ loncom/homework/inputtags.pm 2008/11/16 02:46:25 1.248 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.235 2007/11/17 02:03:46 albertel Exp $ +# $Id: inputtags.pm,v 1.248 2008/11/16 02:46:25 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -306,7 +306,9 @@ sub start_textline { $oldresponse = $oldresponse->[$#Apache::inputtags::inputlist]; } $oldresponse = &HTML::Entities::encode($oldresponse,'<>&"'); - + $oldresponse =~ s/^\s+//; + $oldresponse =~ s/\s+$//; + $oldresponse =~ s/\s+/ /g; if ($Apache::lonhomework::type ne 'exam') { my $addchars=&Apache::lonxml::get_param('addchars',$parstack,$safeeval); $result=''; @@ -356,8 +358,15 @@ sub start_textline { && $Apache::lonhomework::type ne 'exam') { my $size = &Apache::lonxml::get_param('size',$parstack,$safeeval); if ($size != 0) {$size=$size*2; $size.=' mm';} else {$size='40 mm';} - $result='\framebox['.$size.'][s]{\tiny\strut}'; - + if ($env{'form.pdfFormFields'} eq 'yes') { + my $fieldname = $env{'request.symb'}. + '&part_'. $Apache::inputtags::part. + '&textresponse'. + '&HWVAL_' . $Apache::inputtags::response['-1']; + $result="\n\\\\\n".'\textField{'.$fieldname.'}{'.$size.'}{12 bp}'; + } else { + $result='\framebox['.$size.'][s]{\tiny\strut}'; + } } elsif ($target eq 'tex' && $Apache::lonhomework::type eq 'exam' && &needs_exam_box($tagstack)) { @@ -516,7 +525,8 @@ sub valid_award { 'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', 'INVALID_FILETYPE', - 'DRAFT', 'SUBMITTED', 'ASSIGNED_SCORE', + 'EXCESS_FILESIZE', 'DRAFT', + 'SUBMITTED', 'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS','COMMA_FAIL') { if ($award eq $possibleaward) { return 1; } } @@ -530,8 +540,8 @@ sub valid_award { 'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', 'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', - 'INVALID_FILETYPE', 'DRAFT', 'SUBMITTED', 'ASSIGNED_SCORE', - 'APPROX_ANS', 'EXACT_ANS'); + 'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'DRAFT', 'SUBMITTED', + 'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS'); my $i=0; my %fwd_awards = map { ($_,$i++) } @awards; my $max=scalar(@awards); @@ -636,8 +646,8 @@ sub decideoutput { ); my $part = $Apache::inputtags::part; - my $handgrade = - ('yes' eq lc(&Apache::lonnet::EXT("resource.$part.handgrade"))); + my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade"); + my $handgrade = ('yes' eq lc($tohandgrade)); my $computer = ($handgrade)? '' : " ".&mt("Computer's answer now shown above."); @@ -672,7 +682,8 @@ sub decideoutput { if (($symb ne '') && ($env{'course.'.$env{'request.course.id'}. - '.disable_receipt_display'} ne 'yes')) { + '.disable_receipt_display'} ne 'yes') && + ($Apache::lonhomework::type ne 'practice')) { $message.=(($target eq 'web')?'
':' '). &mt('Your receipt is [_1]', (&Apache::lonnet::receipt($Apache::inputtags::part). @@ -727,10 +738,13 @@ sub decideoutput { $button = 1; } elsif ($award eq 'MISSING_ANSWER') { $message = &mt('Some items were not submitted.'); + if ($target ne 'tex') { + $message .= &Apache::loncommon::help_open_topic('Some_Items_Were_Not_Submitted'); + } $css_class=$possible_class{'not_charged_try'}; $button = 1; } elsif ($award eq 'ERROR') { - $message = &mt('An error occured while grading your answer.'); + $message = &mt('An error occurred while grading your answer.'); $css_class=$possible_class{'not_charged_try'}; $button = 1; } elsif ($award eq 'TOO_LONG') { @@ -742,12 +756,17 @@ sub decideoutput { $css_class=$possible_class{'not_charged_try'}; $button=1; } elsif ($award eq 'MISORDERED_RANK') { - $message = &mt('You have provided an invalid ranking'); - if ($target ne 'tex') { - $message.=', '.&mt('please refer to').' '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems'); - } + $message = &mt('You have provided an invalid ranking.'); + if ($target ne 'tex') { + $message.=' '.&mt('Please refer to [_1]',&Apache::loncommon::help_open_topic('Ranking_Problems',&mt('help on ranking problems'))); + } $css_class=$possible_class{'not_charged_try'}; $button=1; + } elsif ($award eq 'EXCESS_FILESIZE') { + $message = &mt('Submission won\'t be graded. The combined size of submitted files exceeded the amount allowed.'); + $css_class=$possible_class{'not_charged_try'}; + $button=1; + } elsif ($award eq 'INVALID_FILETYPE') { $message = &mt('Submission won\'t be graded. The type of file submitted is not allowed.'); $css_class=$possible_class{'not_charged_try'}; @@ -787,7 +806,8 @@ sub decideoutput { $css_class=$possible_class{'not_charged_try'}; $button=1; } elsif ($award eq 'BAD_FORMULA') { - $message = &mt("Unable to understand formula"); + $message = &mt("Unable to understand formula").'.'; + if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')}; $css_class=$possible_class{'not_charged_try'}; $button=1; } elsif ($award eq 'INCORRECT') { @@ -844,6 +864,15 @@ sub decideoutput { $message.= $computer; $added_computer_text=1; } + if ($Apache::lonhomework::type eq 'practice') { + if ($target eq 'web') { + $message .= '
'; + } else { + $message .= ' '; + } + $message.=&mt('Submissions to practice problems are not permanently recorded.'); + } + return ($button,$css_class,$message,$previousmsg); } @@ -1073,7 +1102,7 @@ sub grade { my ($match) = &previous_match(\@Apache::inputtags::previous_version, scalar(@Apache::inputtags::response)); - + if ($match) { $previously_used = 'PREVIOUSLY_LAST'; foreach my $value (@Apache::inputtags::previous) { @@ -1251,11 +1280,11 @@ sub previous_tries { && $Apache::lonhomework::history{"$prefix.solved"} =~/^correct/ ) { + my $txt_correct = &mt('Correct'); $message =~ s{()(.*?)()} - {$1 Correct. $3}s; + {$1 $txt_correct. $3}s; } - my $trystr = "(Try ". - $Apache::lonhomework::history{"$prefix.tries"}.')'; + my $trystr = "(".&mt('Try [_1]',$Apache::lonhomework::history{"$prefix.tries"}).")"; $message =~ s{()}{ $trystr $1}; } my ($class) = ($message =~ m{