--- loncom/homework/optionresponse.pm 2003/10/27 19:27:09 1.93
+++ loncom/homework/optionresponse.pm 2004/03/25 16:55:16 1.105
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.93 2003/10/27 19:27:09 albertel Exp $
+# $Id: optionresponse.pm,v 1.105 2004/03/25 16:55:16 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -27,7 +27,8 @@
#
package Apache::optionresponse;
use strict;
-use Apache::response;
+use Apache::response();
+use Apache::lonlocal;
BEGIN {
&Apache::lonxml::register('Apache::optionresponse',('optionresponse'));
@@ -41,9 +42,11 @@ sub start_optionresponse {
push (@Apache::lonxml::namespace,'optionresponse');
my $id = &Apache::response::start_response($parstack,$safeeval);
%Apache::hint::option=();
+ undef(%Apache::response::foilnames);
if ($target eq 'edit') {
$result.=&Apache::edit::start_table($token).
- "
Multiple Option Response Question ".
+ &Apache::loncommon::help_open_topic('Option_Response_Problems')." | Delete:".
&Apache::edit::deletelist($target,$token)
." | ".
&Apache::edit::end_row().
@@ -74,6 +77,7 @@ sub end_optionresponse {
&Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup'));
my $result;
if ($target eq 'edit') { $result=&Apache::edit::end_table(); }
+ undef(%Apache::response::foilnames);
return $result;
}
@@ -149,7 +153,8 @@ sub end_foilgroup {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze') {
my $tex_option_switch=&Apache::lonxml::get_param('texoptions',$parstack,$safeeval);
my $name;
my @opt;
@@ -165,7 +170,8 @@ sub end_foilgroup {
$result.=&displayanswers($max,$randomize,@opt);
} elsif ( $target eq 'analyze') {
my @shown = &whichfoils($max,$randomize);
- &Apache::response::analyze_store_foilgroup(\@shown,['text','value']);
+ &Apache::response::analyze_store_foilgroup(\@shown,
+ ['text','value','location']);
my $part_id="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
push (@{ $Apache::lonhomework::analyze{"$part_id.options"} },@opt);
} elsif ( $target eq 'grade') {
@@ -182,8 +188,8 @@ sub end_foilgroup {
if ($ENV{'form.submitted'} eq 'scantron') {
$response = $opt[$response];
}
- $responsehash{$name}=$response;
if ( $response =~ /[^\s]/) {
+ $responsehash{$name}=$response;
my $value=$Apache::response::foilgroup{$name.'.value'};
&Apache::lonxml::debug("submitted a $response for $value \n");
if ($value eq $response) {
@@ -286,7 +292,7 @@ sub displayfoils {
my @falselist;
my $result;
my $name;
- my $displayoptionintex=0;
+ my $displayoptionintex=1;
my @alphabet = ('A'..'Z');
my @whichopt = &whichfoils($max,$randomize);
my $part=$Apache::inputtags::part;
@@ -300,13 +306,7 @@ sub displayfoils {
my $text=$Apache::response::foilgroup{$name.'.text'};
my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});
my $lastopt=$lastresponse{$name};
- if ($text!~/^\s*$/) {
- if ($target eq 'tex') {
- $break='\vskip 0 mm ';
- } elsif ($target eq 'web') {
- $break=' ';
- }
- }
+ if ($text!~/^\s*$/) { $break=' '; }
$result.=$break;
if ($target eq 'web') {
my $value=$Apache::response::foilgroup{$name.'.value'};
@@ -316,20 +316,13 @@ sub displayfoils {
} else {
$text=$value.': '.$text;
}
+ } else {
+ $text=''.$text;
}
$result.=$text."\n";
- } elsif ($target eq 'tex') {
- $Apache::response::foilgroup{$name.'.text'}=~s/\\item//;
- if ($max>1) {$result .='\item ';}
- $result .=' \textit{'.$Apache::response::foilgroup{$name.'.value'}.'}'.
- ":".$Apache::response::foilgroup{$name.'.text'}."\n";
}
if ($Apache::lonhomework::type eq 'exam') {
- if ($target ne 'tex') {
$result.=&webbubbles(\@opt,\@alphabet,$temp,$lastopt);
- } else {
- $result.=&bubbles(\@alphabet,\@opt);
- }
}
$temp++;
}
@@ -358,64 +351,55 @@ sub displayfoils {
}
if ($target ne 'tex') {
if ($Apache::lonhomework::type ne 'exam') {
- $optionlist=' |