--- loncom/homework/inputtags.pm 2004/11/06 01:15:59 1.149.2.1
+++ loncom/homework/inputtags.pm 2004/10/19 15:24:32 1.152
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# input definitons
#
-# $Id: inputtags.pm,v 1.149.2.1 2004/11/06 01:15:59 albertel Exp $
+# $Id: inputtags.pm,v 1.152 2004/10/19 15:24:32 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -347,8 +347,8 @@ sub decideoutput {
$message = '\textbf{'.&mt('You are correct.').'}';
} else {
$message = "".&mt('You are correct.')."";
+ $message.=" ".&mt("Computer's answer now shown above.");
}
- $message.=" ".&mt("Computer's answer now shown above.");
$added_computer_text=1;
unless ($ENV{'course.'.
$ENV{'request.course.id'}.
@@ -380,8 +380,8 @@ sub decideoutput {
$message = '\textbf{'.&mt('You are correct.').'}';
} else {
$message = "".&mt('You are correct.')."";
+ $message.=" ".&mt("Computer's answer now shown above.");
}
- $message.=" ".&mt("Computer's answer now shown above.");
$added_computer_text=1;
unless ($ENV{'course.'.
$ENV{'request.course.id'}.
@@ -439,17 +439,17 @@ sub decideoutput {
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'UNIT_INVALID_STUDENT') {
- $message = &mt('Unable to interpret units. Computer reads units as "[_1]"',''.$awardmsg.'.');
+ $message = &mt('Unable to interpret units. Computer reads units as "[_1]".',''.$awardmsg.'');
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');}
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {
- $message = &mt('Incompatible units. No conversion found between "[_1]" and the required units ',''.$awardmsg.'.');
+ $message = &mt('Incompatible units. No conversion found between "[_1]" and the required units.',''.$awardmsg.'');
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');}
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'UNIT_NOTNEEDED') {
- $message = &mt('Only a number required. Computer reads units of "[_1]"',''.$awardmsg.'.');
+ $message = &mt('Only a number required. Computer reads units of "[_1]".',''.$awardmsg.'');
$bgcolor=$possiblecolors{'not_charged_try'};
$button=1;
} elsif ($award eq 'NO_UNIT') {
@@ -491,7 +491,7 @@ sub decideoutput {
$button=1;
}
if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' &&
- !$added_computer_text) {
+ !$added_computer_text && $target ne 'tex') {
$message.=" ".&mt("Computer's answer now shown above.");
$added_computer_text=1;
}
@@ -524,15 +524,10 @@ sub hidealldata {
sub setgradedata {
my ($award,$msg,$id,$previously_used) = @_;
- if ($Apache::lonhomework::scantronmode &&
- &Apache::lonnet::validCODE($ENV{'form.CODE'})) {
+ # if the student already has it correct, don't modify the status
+ if ($Apache::lonhomework::scantronmode && defined($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') {
@@ -541,10 +536,7 @@ sub setgradedata {
} elsif ( $Apache::lonhomework::history{"resource.$id.solved"} !~
/^correct/ || $Apache::lonhomework::scantronmode ||
lc($Apache::lonhomework::problemstatus) eq 'no') {
- # 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
+ #handle assignment of tries and solved status
my $solvemsg;
if ($Apache::lonhomework::scantronmode) {
$solvemsg='correct_by_scantron';
@@ -578,7 +570,8 @@ 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') {
+ if (lc($Apache::lonhomework::problemstatus) eq 'no' ||
+ $Apache::lonhomework::scantronmode) {
$Apache::lonhomework::results{"resource.$id.awarded"} = 0;
}
$Apache::lonhomework::results{"resource.$id.solved"} =
@@ -597,7 +590,8 @@ sub setgradedata {
} else {
$Apache::lonhomework::results{"resource.$id.solved"} =
'incorrect_attempted';
- if (lc($Apache::lonhomework::problemstatus) eq 'no') {
+ if (lc($Apache::lonhomework::problemstatus) eq 'no' ||
+ $Apache::lonhomework::scantronmode) {
$Apache::lonhomework::results{"resource.$id.tries"} =
$Apache::lonhomework::history{"resource.$id.tries"} + 1;
$Apache::lonhomework::results{"resource.$id.awarded"} = 0;