--- loncom/homework/inputtags.pm 2003/05/23 16:26:28 1.103
+++ loncom/homework/inputtags.pm 2003/09/23 15:44:39 1.114.2.2
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# input definitons
#
-# $Id: inputtags.pm,v 1.103 2003/05/23 16:26:28 albertel Exp $
+# $Id: inputtags.pm,v 1.114.2.2 2003/09/23 15:44:39 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -144,6 +144,7 @@ sub start_textfield {
} else {
$result=$token->[4];
}
+ my $bodytext=&Apache::lonxml::get_all_text("/textfield",$parser);
$result.=&Apache::edit::modifiedfield();
} elsif ($target eq 'tex') {
my $number_of_lines = &Apache::lonxml::get_param('rows',$parstack,$safeeval);
@@ -324,7 +325,13 @@ sub decideoutput {
my $message='';
my $button=0;
my $previousmsg;
-
+ my $bgcolor='orange';
+ my %possiblecolors =
+ ( 'correct' => '#aaffaa',
+ 'charged_try' => '#ffaaaa',
+ 'not_charged_try' => '#ffffaa',
+ 'no_message' => '#fffff',
+ );
if ($previous) { $previousmsg='You have entered that answer before'; }
if ($solved =~ /^correct/) {
@@ -336,84 +343,124 @@ sub decideoutput {
} else {
$message = "You are correct.";
}
- $message=' Your receipt is '.&Apache::lonnet::receipt;
+ unless ($ENV{'course.'.
+ $ENV{'request.course.id'}.
+ '.disable_receipt_display'} eq 'yes') {
+ $message.=(($target eq 'web')?'
':' ').
+ 'Your receipt is '.&Apache::lonnet::receipt().
+ (($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
+ }
}
+ $bgcolor=$possiblecolors{'correct'};
$button=0;
$previousmsg='';
} elsif ($solved =~ /^excused/) {
- $message = "You are excused from the problem.";
+ if ($target eq 'tex') {
+ $message = ' \textbf{You are excused from the problem.} ';
+ } else {
+ $message = "You are excused from the problem.";
+ }
+ $bgcolor=$possiblecolors{'charged_try'};
$button=0;
$previousmsg='';
} elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {
if ($solved =~ /^incorrect/ || $solved eq '') {
$message = "Incorrect";
+ $bgcolor=$possiblecolors{'charged_try'};
$button=1;
} else {
- $message = "You are correct. Your receipt is ".
- &Apache::lonnet::receipt;
+ $message = "You are correct.";
+ unless ($ENV{'course.'.
+ $ENV{'request.course.id'}.
+ '.disable_receipt_display'} eq 'yes') {
+ $message.=(($target eq 'web')?'
':' ').
+ 'Your receipt is '.&Apache::lonnet::receipt().
+ (($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
+ }
+ $bgcolor=$possiblecolors{'correct'};
$button=0;
$previousmsg='';
}
} elsif ($award eq 'NO_RESPONSE') {
$message = '';
+ $bgcolor=$possiblecolors{'no_feedback'};
$button=1;
} elsif ($award eq 'MISSING_ANSWER') {
$message = 'Some parts were not submitted';
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button = 1;
} elsif ($award eq 'ERROR') {
- $message = 'An error occured while trying to grade answer.';
+ $message = 'An error occured while grading your answer.';
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button = 1;
} elsif ($award eq 'TOO_LONG') {
$message = "The submitted answer was too long.";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'WANTED_NUMERIC') {
$message = "This question expects a numeric answer";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'MISORDERED_RANK') {
- $message = 'You have provided an invalid ranking, please refer to '.
- &Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';
+ $message = 'You have provided an invalid ranking';
+ if ($target ne 'tex') {
+ $message.=', please refer to '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';
+ }
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'INVALID_FILETYPE') {
$message = 'The filetype extension of the file you uploaded is not allowed.';
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'SIG_FAIL') {
$message = "Please adjust significant figures.";# you provided %s significant figures";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'UNIT_FAIL') {
- $message = "Units incorrect. ".
- &Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s";
+ $message = "Units incorrect. ";
+ if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} #Computer reads units as %s";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'UNIT_NOTNEEDED') {
$message = "Only a number required.";# Computer reads units of %s";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'NO_UNIT') {
- $message = "Units required".
- &Apache::loncommon::help_open_topic('Physical_Units');
+ $message = "Units required";
+ if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'BAD_FORMULA') {
$message = "Unable to understand formula";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'INCORRECT') {
$message = "Incorrect";
+ $bgcolor=$possiblecolors{'charged_try'};
$button=1;
} elsif ($award eq 'SUBMITTED') {
$message = "Your submission has been recorded.";
+ $bgcolor=$possiblecolors{'correct'};
$button=1;
} elsif ($award eq 'DRAFT') {
$message = "A draft copy has been saved.";
+ $bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'ASSIGNED_SCORE') {
$message = "A score has been assigned.";
+ $bgcolor=$possiblecolors{'correct'};
$button=0;
} else {
$message = "Unknown message: $award";
$button=1;
}
- if (lc($Apache::lonhomework::problemstatus) eq 'no') {
+ if (lc($Apache::lonhomework::problemstatus) eq 'no' &&
+ $Apache::inputtags::status[-1] ne 'SHOW_ANSWER') {
$message = "Answer Submitted";
+ $bgcolor=$possiblecolors{'correct'};
$button=1;
}
- return ($button,$message,$previousmsg);
+ return ($button,$bgcolor,$message,$previousmsg);
}
sub removealldata {
@@ -470,6 +517,9 @@ sub setgradedata {
} elsif ( $award eq 'INCORRECT' ) {
$Apache::lonhomework::results{"resource.$id.tries"} =
$Apache::lonhomework::history{"resource.$id.tries"} + 1;
+ if (lc($Apache::lonhomework::problemstatus) ne 'no') {
+ $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
+ }
$Apache::lonhomework::results{"resource.$id.solved"} =
'incorrect_attempted'
} elsif ( $award eq 'SUBMITTED' ) {
@@ -489,6 +539,7 @@ sub setgradedata {
if (lc($Apache::lonhomework::problemstatus) eq 'no') {
$Apache::lonhomework::results{"resource.$id.tries"} =
$Apache::lonhomework::history{"resource.$id.tries"} + 1;
+ $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
}
}
@@ -560,6 +611,7 @@ sub grade {
sub gradestatus {
my ($id,$target) = @_;
my $showbutton = 1;
+ my $bgcolor = '';
my $message = '';
my $latemessage = '';
my $trystr='';
@@ -573,16 +625,16 @@ sub gradestatus {
my $solved = $Apache::lonhomework::history{"resource.$id.solved"};
my $previous = $Apache::lonhomework::history{"resource.$id.previous"};
&Apache::lonxml::debug("Found Award |$award|$solved|");
- if ( $award ne '' ) {
+ if ( $award ne '' || $solved ne '') {
&Apache::lonxml::debug('Getting message');
- ($showbutton,$message,$previousmsg) =
+ ($showbutton,$bgcolor,$message,$previousmsg) =
&decideoutput($award,$solved,$previous,$target);
if ($target eq 'tex') {
$message=' '.$message.' ';
} else {
- $message="