[LON-CAPA-cvs] cvs: loncom /homework matchresponse.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Mon, 17 Mar 2003 19:54:20 -0000
sakharuk Mon Mar 17 14:54:20 2003 EDT
Modified files:
/loncom/homework matchresponse.pm
Log:
Can be printed now. Tested on the simplest examples (2 my own and one Ed's more sofisticated - /msu/kashy/Testing/C2LC/A8matching.problem) - works well. Needs to be tested more and may be corrected for the output having answers.
Index: loncom/homework/matchresponse.pm
diff -u loncom/homework/matchresponse.pm:1.4 loncom/homework/matchresponse.pm:1.5
--- loncom/homework/matchresponse.pm:1.4 Thu Feb 20 04:55:07 2003
+++ loncom/homework/matchresponse.pm Mon Mar 17 14:54:20 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Full matching style response
#
-# $Id: matchresponse.pm,v 1.4 2003/02/20 09:55:07 albertel Exp $
+# $Id: matchresponse.pm,v 1.5 2003/03/17 19:54:20 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -140,6 +140,17 @@
}
$table.='</table>';
$Apache::matchresponse::itemtable{'display'}=$table;
+ } elsif ($target eq 'tex') {
+ my $table=' \\\\\\\\ \begin{tabular}{ll} ';
+ my $i=0;
+ foreach my $name (@names) {
+ $table.=' '.$alphabet[$i].' & '.
+ $Apache::response::itemgroup{$name.'.text'}.
+ ' \\\\ ';
+ $i++;
+ }
+ $table.=' \end{tabular} \\\\ ';
+ $Apache::matchresponse::itemtable{'display'}=$table;
} elsif ($target eq 'edit') { $result=&Apache::edit::end_table(); }
return $result;
}
@@ -147,7 +158,7 @@
sub start_item {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- if ($target eq 'web' ) {
+ if ($target eq 'web' || $target eq 'tex') {
&Apache::lonxml::startredirection;
} elsif ($target eq 'edit') {
my $randomize=&Apache::lonxml::get_param('randomize',$parstack,
@@ -173,11 +184,11 @@
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $text ='';
my $result = '';
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
$text=&Apache::lonxml::endredirection;
}
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'edit') {
+ $target eq 'edit' || $target eq 'tex') {
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
my $location=&Apache::lonxml::get_param('location',$parstack,
$safeeval);
@@ -222,11 +233,11 @@
sub end_foilgroup {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'grade' || $target eq 'web' || $target eq 'answer') {
+ if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') {
my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
$safeeval,'-2');
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
$result=&displayfoils($target,$max,$randomize);
} elsif ($target eq 'answer' ) {
$result=&displayanswers($max,$randomize);
@@ -356,7 +367,11 @@
my $text=$Apache::response::foilgroup{$name.'.text'};
my $value=$Apache::response::foilgroup{$name.'.value'};
my $letter=$name_letter_map{$value};
- $question.='<br />'.$letter.':'.$text;
+ if ($target eq 'tex') {
+ $question.=' \\\\ '.$letter.':'.$text;
+ } else {
+ $question.='<br />'.$letter.':'.$text;
+ }
}
} else {
my $i = 0;
@@ -365,23 +380,37 @@
my $part=$Apache::inputtags::part;
my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"};
my %lastresponse=&Apache::lonnet::str2hash($lastresponse);
+ my $localcount = 1;
foreach my $name (@whichfoils) {
my $lastopt=$lastresponse{$name};
my $last_letter=$name_letter_map{$lastopt};
- my $optionlist="<option></option>\n";
+ my $optionlist = '';
+ if ($target ne 'tex') {$optionlist="<option></option>\n";} else {$optionlist=' '.$localcount.'. '; $localcount++;}
my $option;
foreach $option (sort(keys(%letter_name_map))) {
if ($option eq $last_letter) {
- $optionlist.="<option selected=\"on\">$option</option>\n";
+ if ($target ne 'tex') {
+ $optionlist.="<option selected=\"on\">$option</option>\n";
+ }
} else {
- $optionlist.="<option>$option</option>\n";
+ if ($target ne 'tex') {
+ $optionlist.="<option>$option</option>\n";
+ }
}
}
- $optionlist='<select name="HWVAL_'.
- $Apache::inputtags::response[-1].':'.$temp.'">'.
- $optionlist."</select>\n";
+ if ($target ne 'tex') {
+ $optionlist='<select name="HWVAL_'.
+ $Apache::inputtags::response[-1].':'.$temp.'">'.
+ $optionlist."</select>\n";
+ } else {
+ $optionlist=$optionlist;
+ }
my $text=$Apache::response::foilgroup{$name.'.text'};
- $question.='<br />'.$optionlist.$text."\n";
+ if ($target ne 'tex') {
+ $question.='<br />'.$optionlist.$text."\n";
+ } else {
+ $question.=' \\\\ '.$optionlist.$text."\n";
+ }
$temp++;
}
}
@@ -396,7 +425,7 @@
$result='<table><tr><td>'.$result.'</td><td>'.$question.
'</td></tr></table>';
}
- $result.="<br />";
+ if ($target ne 'tex') {$result.="<br />";} else {$result.=' \\\\ ';}
return $result;
}
@@ -519,7 +548,7 @@
sub start_foil {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- if ($target eq 'web' ) {
+ if ($target eq 'web' || $target eq 'tex') {
&Apache::lonxml::startredirection;
} elsif ($target eq 'edit') {
$result=&Apache::edit::tag_start($target,$token,"Foil");
@@ -551,10 +580,10 @@
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $text ='';
my $result = '';
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
$text=&Apache::lonxml::endredirection;
}
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') {
my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval);
if ($value ne 'unused') {
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);