--- loncom/homework/matchresponse.pm 2004/07/08 17:51:31 1.44
+++ loncom/homework/matchresponse.pm 2004/12/04 00:41:26 1.48
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Full matching style response
#
-# $Id: matchresponse.pm,v 1.44 2004/07/08 17:51:31 sakharuk Exp $
+# $Id: matchresponse.pm,v 1.48 2004/12/04 00:41:26 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -350,7 +350,16 @@ sub grade_response {
$itemstr;
$Apache::lonhomework::results{"resource.$part.$id.submissiongrading"}=
$gradestr;
- if (!$Apache::lonhomework::scantronmode) {
+ if ($Apache::lonhomework::type eq 'survey') {
+ if ($ignored == 0) {
+ my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+ &Apache::response::handle_previous(\%previous,$ad);
+ } elsif ($wrong==0 && $right==0) {
+ } else {
+ my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='MISSING_ANSWER';
+ &Apache::response::handle_previous(\%previous,$ad);
+ }
+ } elsif (!$Apache::lonhomework::scantronmode) {
my $ad;
if ($wrong==0 && $ignored==0) {
$ad='EXACT_ANS';
@@ -460,9 +469,9 @@ sub displayfoils {
my $text=$Apache::response::foilgroup{$name.'.text'};
if ($target ne 'tex') {
if ($Apache::lonhomework::type ne 'exam') {
- $question.='
'.$optionlist.$text."\n";
+ $question.="
\n".$optionlist.$text;
} else {
- $question.='
'.$text."\n";
+ $question.="
\n".$text;
}
if ($Apache::lonhomework::type eq 'exam') {
my @blank;
@@ -488,8 +497,10 @@ sub displayfoils {
$result=$question.$result;
} elsif ($result=&itemdisplay('right')) {
if ($target ne 'tex') {
- $result='
'.$question.' | '.$result.
- ' |
';
+ #remove the first
+ $question=~s|
||;
+ $result=''.$question.
+ ' | '.$result.' |
';
} else {
my $tabsize=&Apache::londefdef::recalc($ENV{'form.textwidth'});
my ($lefttabsize,$righttabsize)=(0,0);
@@ -508,8 +519,10 @@ sub displayfoils {
}
} elsif ($result=&itemdisplay('left')) {
if ($target ne 'tex') {
- $result=''.$result.' | '.$question.
- ' |
';
+ #remove the first
+ $question=~s|
||;
+ $result=''.$result.
+ ' | '.$question.' |
';
} else {
my $tabsize=&Apache::londefdef::recalc($ENV{'form.textwidth'});
my ($lefttabsize,$righttabsize)=(0,0);
@@ -587,6 +600,9 @@ sub start_foil {
my $result='';
if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
&Apache::lonxml::startredirection;
+ if ($target eq 'analyze') {
+ &Apache::response::check_if_computed($token,$parstack,$safeeval,'value');
+ }
} elsif ($target eq 'edit') {
$result=&Apache::edit::tag_start($target,$token,"Foil");
my $level='-2';
@@ -620,8 +636,12 @@ sub end_foil {
if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
$text=&Apache::lonxml::endredirection;
}
+
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
$target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') {
+ $text='\vskip 5mm $\triangleright$ '.$text;
+ }
my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);
if ($value ne 'unused') {
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
@@ -638,28 +658,12 @@ sub end_foil {
&& !&Apache::response::showallfoils() ) {
push @{ $Apache::response::conceptgroup{'names'} }, $name;
$Apache::response::conceptgroup{"$name.value"} = $value;
- if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') {
- $Apache::response::conceptgroup{"$name.text"} = ' $\triangleright$ '.$text;
- } else {
- $Apache::response::conceptgroup{"$name.text"} = $text;
- }
+ $Apache::response::conceptgroup{"$name.text"} = $text;
$Apache::response::conceptgroup{"$name.location"} = $location;
} else {
push @{ $Apache::response::foilgroup{'names'} }, $name;
$Apache::response::foilgroup{"$name.value"} = $value;
- if ($Apache::lonhomework::type eq 'exam') {
- if ($target eq 'tex') {
- $Apache::response::foilgroup{"$name.text"} = '\vskip 5 mm $\triangleright$ '.$text;
- } else {
- $Apache::response::foilgroup{"$name.text"} = $text;
- }
- } else {
- if ($target eq 'tex') {
- $Apache::response::foilgroup{"$name.text"} = $text;
- } else {
- $Apache::response::foilgroup{"$name.text"} = $text;
- }
- }
+ $Apache::response::foilgroup{"$name.text"} = $text;
$Apache::response::foilgroup{"$name.location"} = $location;
}
}