--- loncom/homework/inputtags.pm 2011/03/05 23:00:45 1.281 +++ loncom/homework/inputtags.pm 2011/03/07 21:37:59 1.283 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.281 2011/03/05 23:00:45 raeburn Exp $ +# $Id: inputtags.pm,v 1.283 2011/03/07 21:37:59 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -801,7 +801,7 @@ sub finalizeawards { } sub decideoutput { - my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_; + my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_; my $message=''; my $button=0; @@ -819,8 +819,14 @@ sub decideoutput { my $part = $Apache::inputtags::part; my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade"); my $handgrade = ('yes' eq lc($tohandgrade)); +# +# Should "Computer's Answer" be displayed? +# Should not be displayed if still answerable, +# if the problem is handgraded, +# or if the problem does not give a correct answer +# - my $computer = ($handgrade)? '' + my $computer = ($handgrade || $nocorrect)? '' : " ".&mt("Computer's answer now shown above."); &Apache::lonxml::debug("handgrade has :$handgrade:"); @@ -1263,8 +1269,7 @@ sub setgradedata { $Apache::lonhomework::results{"resource.$id.previous"} = '0'; } } - } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~ - /^correct/ ) { + } elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} == 1 ) { #delete all data as they student already has it correct &removealldata($id); #and since they didn't do anything we were never here @@ -1361,8 +1366,8 @@ sub grade { } sub get_grade_messages { - my ($id,$prefix,$target,$status) = @_; - + my ($id,$prefix,$target,$status,$nocorrect) = @_; +# nocorrect suppresses "Computer's answer now shown above" my ($message,$latemessage,$trystr,$previousmsg); my $showbutton = 1; @@ -1376,7 +1381,7 @@ sub get_grade_messages { &Apache::lonxml::debug('Getting message'); ($showbutton,my $css_class,$message,$previousmsg) = &decideoutput($award,$awarded,$awardmsg,$solved,$previous, - $target); + $target,(($status eq 'CAN_ANSWER') || $nocorrect)); if ($target eq 'tex') { $message='\vskip 2 mm '.$message.' '; } else {