--- loncom/homework/inputtags.pm 2004/10/19 15:24:32 1.152 +++ loncom/homework/inputtags.pm 2004/11/06 01:11:38 1.154 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.152 2004/10/19 15:24:32 albertel Exp $ +# $Id: inputtags.pm,v 1.154 2004/11/06 01:11:38 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -317,7 +317,7 @@ sub finalizeawards { 'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', 'INVALID_FILETYPE', 'DRAFT', 'SUBMITTED', 'ASSIGNED_SCORE', - 'APPROX_ANS', 'EXACT_ANS') { + 'APPROX_ANS', 'EXACT_ANS','COMMA_FAIL') { ($result,$msg)=&checkstatus($possibleaward,$awardref,$msgref); if (defined($result)) { return ($result,$msg); } } @@ -457,6 +457,10 @@ sub decideoutput { if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')}; $bgcolor=$possiblecolors{'not_charged_try'}; $button=1; + } elsif ($award eq 'COMMA_FAIL') { + $message = &mt("Proper comma separation is required").'.'; + $bgcolor=$possiblecolors{'not_charged_try'}; + $button=1; } elsif ($award eq 'BAD_FORMULA') { $message = &mt("Unable to understand formula"); $bgcolor=$possiblecolors{'not_charged_try'}; @@ -524,10 +528,15 @@ sub hidealldata { sub setgradedata { my ($award,$msg,$id,$previously_used) = @_; - # if the student already has it correct, don't modify the status - if ($Apache::lonhomework::scantronmode && defined($ENV{'form.CODE'})) { + if ($Apache::lonhomework::scantronmode && + &Apache::lonnet::validCODE($ENV{'form.CODE'})) { $Apache::lonhomework::results{"resource.CODE"}=$ENV{'form.CODE'}; + } elsif ($Apache::lonhomework::scantronmode && + $ENV{'form.CODE'} eq '' && + $Apache::lonhomework::history{"resource.CODE"} ne '') { + $Apache::lonhomework::results{"resource.CODE"}=''; } + if (!$Apache::lonhomework::scantronmode && $Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') { @@ -536,7 +545,10 @@ sub setgradedata { } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~ /^correct/ || $Apache::lonhomework::scantronmode || lc($Apache::lonhomework::problemstatus) eq 'no') { - #handle assignment of tries and solved status + # the student doesn't already have it correct, + # or we are in a mode (scantron orno problem status) where a correct + # can become incorrect + # handle assignment of tries and solved status my $solvemsg; if ($Apache::lonhomework::scantronmode) { $solvemsg='correct_by_scantron';