--- loncom/homework/inputtags.pm 2003/06/19 21:41:02 1.105
+++ loncom/homework/inputtags.pm 2003/10/15 22:20:13 1.114.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# input definitons
#
-# $Id: inputtags.pm,v 1.105 2003/06/19 21:41:02 albertel Exp $
+# $Id: inputtags.pm,v 1.114.2.4 2003/10/15 22:20:13 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);
@@ -342,13 +343,23 @@ 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='';
@@ -358,8 +369,14 @@ sub decideoutput {
$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='';
@@ -373,7 +390,7 @@ sub decideoutput {
$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') {
@@ -385,8 +402,10 @@ sub decideoutput {
$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') {
@@ -398,8 +417,8 @@ sub decideoutput {
$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') {
@@ -407,8 +426,8 @@ sub decideoutput {
$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') {
@@ -435,7 +454,8 @@ sub decideoutput {
$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;
@@ -497,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) eq 'no') {
+ $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
+ }
$Apache::lonhomework::results{"resource.$id.solved"} =
'incorrect_attempted'
} elsif ( $award eq 'SUBMITTED' ) {
@@ -516,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;
}
}
@@ -596,12 +620,13 @@ sub gradestatus {
my $status = $Apache::inputtags::status['-1'];
&Apache::lonxml::debug("gradestatus has :$status:");
- if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE') {
+ if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE' &&
+ $status ne 'INVALID_ACCESS') {
my $award = $Apache::lonhomework::history{"resource.$id.award"};
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,$bgcolor,$message,$previousmsg) =
&decideoutput($award,$solved,$previous,$target);