--- loncom/homework/inputtags.pm 2001/07/13 14:02:35 1.38
+++ loncom/homework/inputtags.pm 2001/07/30 22:24:01 1.39
@@ -214,25 +214,31 @@ sub decideoutput {
sub setgradedata {
my ($award,$id) = @_;
- if ( $award eq 'APPROX_ANS' || $award eq 'EXACT_ANS' ) {
- $Apache::lonhomework::results{"resource.$id.tries"} =
- $Apache::lonhomework::history{"resource.$id.tries"} + 1;
- $Apache::lonhomework::results{"resource.$id.solved"} =
- 'correct_by_student';
- $Apache::lonhomework::results{"resource.$id.awarded"} = '1';
- } elsif ( $award eq 'INCORRECT' ) {
- $Apache::lonhomework::results{"resource.$id.tries"} =
- $Apache::lonhomework::history{"resource.$id.tries"} + 1;
- $Apache::lonhomework::results{"resource.$id.solved"} =
- 'incorrect_attempted';
- } elsif ( $award eq 'SUBMITTED' ) {
- $Apache::lonhomework::results{"resource.$id.tries"} =
- $Apache::lonhomework::history{"resource.$id.tries"} + 1;
- $Apache::lonhomework::results{"resource.$id.solved"} =
- 'ungraded_attempted';
- } else {
- $Apache::lonhomework::results{"resource.$id.solved"} =
- 'incorrect_attempted';
+ # if the student already has it correct, don't modify the status
+ if ( $Apache::lonhomework::history{"resource.$id.solved"} !~
+ /^correct/ ) {
+ if ( $award eq 'APPROX_ANS' || $award eq 'EXACT_ANS' ) {
+ $Apache::lonhomework::results{"resource.$id.tries"} =
+ $Apache::lonhomework::history{"resource.$id.tries"} + 1;
+ $Apache::lonhomework::results{"resource.$id.solved"} =
+ 'correct_by_student';
+ $Apache::lonhomework::results{"resource.$id.awarded"} = '1';
+ } elsif ( $award eq 'INCORRECT' ) {
+ $Apache::lonhomework::results{"resource.$id.tries"} =
+ $Apache::lonhomework::history{"resource.$id.tries"} + 1;
+ $Apache::lonhomework::results{"resource.$id.solved"} =
+ 'incorrect_attempted';
+ } elsif ( $award eq 'SUBMITTED' ) {
+ $Apache::lonhomework::results{"resource.$id.tries"} =
+ $Apache::lonhomework::history{"resource.$id.tries"} + 1;
+ $Apache::lonhomework::results{"resource.$id.solved"} =
+ 'ungraded_attempted';
+ } elsif ( $award eq 'NO_RESPONSE' ) {
+ return '';
+ } else {
+ $Apache::lonhomework::results{"resource.$id.solved"} =
+ 'incorrect_attempted';
+ }
}
$Apache::lonhomework::results{"resource.$id.award"} = $award;
}
@@ -280,7 +286,7 @@ sub gradestatus {
if ( $award ne '' ) {
&Apache::lonxml::debug('Getting message');
($showbutton,$message) = &decideoutput($award,$solved);
- $message="
$message |