version 1.86, 2004/03/15 22:09:52
|
version 1.93, 2004/08/30 02:03:44
|
Line 77 sub start_radiobuttonresponse {
|
Line 77 sub start_radiobuttonresponse {
|
$result .= ' \renewcommand{\labelenumi}{\alph{enumi}.}'; |
$result .= ' \renewcommand{\labelenumi}{\alph{enumi}.}'; |
} elsif ($type eq 'i') { |
} elsif ($type eq 'i') { |
$result .= ' \renewcommand{\labelenumi}{\roman{enumi}.}'; |
$result .= ' \renewcommand{\labelenumi}{\roman{enumi}.}'; |
|
} else { |
|
$result .= ' \renewcommand{\labelenumi}{\Alph{enumi}.}'; |
} |
} |
$result .= '\begin{enumerate}'; |
$result .= '\begin{enumerate}'; |
} elsif ($target eq 'analyze') { |
} elsif ($target eq 'analyze') { |
Line 104 sub start_foilgroup {
|
Line 106 sub start_foilgroup {
|
my $result; |
my $result; |
%Apache::response::foilgroup=(); |
%Apache::response::foilgroup=(); |
$Apache::radiobuttonresponse::conceptgroup=0; |
$Apache::radiobuttonresponse::conceptgroup=0; |
&Apache::response::setrandomnumber(); |
&Apache::response::pushrandomnumber(); |
if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') { |
if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') { |
$result.='\item[\textbf{'.$Apache::lonxml::counter.'}.]'; |
$result.='\item[\textbf{'.$Apache::lonxml::counter.'}.]'; |
} |
} |
Line 165 sub end_foilgroup {
|
Line 167 sub end_foilgroup {
|
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze') { |
$target eq 'tex' || $target eq 'analyze') { |
my $style = $Apache::lonhomework::type; |
my $style = $Apache::lonhomework::type; |
|
my $direction = &Apache::lonxml::get_param('direction',$parstack, |
|
$safeeval,'-2'); |
if ( $style eq 'survey' && $target ne 'analyze') { |
if ( $style eq 'survey' && $target ne 'analyze') { |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$result=&displayallfoils(); |
$result=&displayallfoils($direction); |
} elsif ( $target eq 'answer' ) { |
} elsif ( $target eq 'answer' ) { |
$result=&displayallanswers(); |
$result=&displayallanswers(); |
} elsif ( $target eq 'grade' ) { |
} elsif ( $target eq 'grade' ) { |
Line 180 sub end_foilgroup {
|
Line 184 sub end_foilgroup {
|
my $randomize = &Apache::lonxml::get_param('randomize',$parstack, |
my $randomize = &Apache::lonxml::get_param('randomize',$parstack, |
$safeeval,'-2'); |
$safeeval,'-2'); |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$result=&displayfoils($target,$max,$randomize); |
$result=&displayfoils($target,$max,$randomize,$direction); |
} elsif ($target eq 'answer' ) { |
} elsif ($target eq 'answer' ) { |
$result=&displayanswers($max,$randomize); |
$result=&displayanswers($max,$randomize); |
} elsif ( $target eq 'grade') { |
} elsif ( $target eq 'grade') { |
Line 195 sub end_foilgroup {
|
Line 199 sub end_foilgroup {
|
} |
} |
} |
} |
} |
} |
|
&Apache::response::poprandomnumber(); |
&Apache::lonxml::increment_counter(); |
&Apache::lonxml::increment_counter(); |
return $result; |
return $result; |
} |
} |
Line 218 sub getfoilcounts {
|
Line 223 sub getfoilcounts {
|
} |
} |
|
|
sub displayallfoils { |
sub displayallfoils { |
|
my ($direction)=@_; |
my $result; |
my $result; |
&Apache::lonxml::debug("survey style display"); |
&Apache::lonxml::debug("survey style display"); |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
my @names = @{ $Apache::response::foilgroup{'names'} }; |
Line 226 sub displayallfoils {
|
Line 232 sub displayallfoils {
|
my $part=$Apache::inputtags::part; |
my $part=$Apache::inputtags::part; |
my $lastresponse= |
my $lastresponse= |
$Apache::lonhomework::history{"resource.$part.$id.submission"}; |
$Apache::lonhomework::history{"resource.$part.$id.submission"}; |
|
if ($direction eq 'horizontal') { $result.='<table><tr>'; } |
my %lastresponse=&Apache::lonnet::str2hash($lastresponse); |
my %lastresponse=&Apache::lonnet::str2hash($lastresponse); |
if (&Apache::response::show_answer() ) { |
if (&Apache::response::show_answer() ) { |
foreach my $name (@names) { |
foreach my $name (@names) { |
if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') { |
if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') { |
$result.="<br />"; |
if ($direction eq 'horizontal') { |
|
$result.="<td>"; |
|
} else { |
|
$result.="<br />"; |
|
} |
if (defined($lastresponse{$name})) { |
if (defined($lastresponse{$name})) { |
$result.='<b>'; |
$result.='<b>'; |
} |
} |
Line 238 sub displayallfoils {
|
Line 249 sub displayallfoils {
|
if (defined($lastresponse{$name})) { |
if (defined($lastresponse{$name})) { |
$result.='</b>'; |
$result.='</b>'; |
} |
} |
|
if ($direction eq 'horizontal') { $result.="</td>"; } |
} |
} |
} |
} |
} else { |
} else { |
foreach my $name (@names) { |
foreach my $name (@names) { |
if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') { |
if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') { |
$result.="<br /><input type=\"radio\" name=\"HWVAL_$Apache::inputtags::response['-1']\" value=\"$temp\" "; |
if ($direction eq 'horizontal') { |
|
$result.="<td>"; |
|
} else { |
|
$result.="<br />"; |
|
} |
|
$result.="<input type=\"radio\" name=\"HWVAL_$Apache::inputtags::response['-1']\" value=\"$temp\" "; |
if (defined($lastresponse{$name})) { $result .= 'checked="on"'; } |
if (defined($lastresponse{$name})) { $result .= 'checked="on"'; } |
$result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>\n"; |
$result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>"; |
$temp++; |
$temp++; |
|
if ($direction eq 'horizontal') { $result.="</td>"; } |
} |
} |
} |
} |
} |
} |
|
if ($direction eq 'horizontal') { $result.='</tr></table>'; } |
return $result; |
return $result; |
} |
} |
|
|
Line 283 sub whichfoils {
|
Line 302 sub whichfoils {
|
push (@whichfalse,$name); |
push (@whichfalse,$name); |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
} else { |
} else { |
&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>")); |
&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>",'<>&"')); |
} |
} |
} |
} |
} else { |
} else { |
Line 309 sub whichfoils {
|
Line 328 sub whichfoils {
|
} |
} |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
} elsif ($Apache::response::foilgroup{$name.'.value'} eq 'unused') { |
} else { |
} else { |
&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>")); |
&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>",'<>&"')); |
} |
} |
} |
} |
#pick a true statement |
#pick a true statement |
Line 387 sub whichfoils {
|
Line 406 sub whichfoils {
|
} |
} |
|
|
sub displayfoils { |
sub displayfoils { |
my ($target,$max,$randomize)=@_; |
my ($target,$max,$randomize,$direction)=@_; |
my $result; |
my $result; |
|
|
my ($answer,@whichfoils)=&whichfoils($max,$randomize); |
my ($answer,@whichfoils)=&whichfoils($max,$randomize); |
Line 395 sub displayfoils {
|
Line 414 sub displayfoils {
|
my $solved=$Apache::lonhomework::history{"resource.$part.solved"}; |
my $solved=$Apache::lonhomework::history{"resource.$part.solved"}; |
if ( ($target ne 'tex') && |
if ( ($target ne 'tex') && |
&Apache::response::show_answer() ) { |
&Apache::response::show_answer() ) { |
|
if ($direction eq 'horizontal') { |
|
if ($target ne 'tex') { |
|
$result.='<table><tr>'; |
|
} |
|
} |
foreach my $name (@whichfoils) { |
foreach my $name (@whichfoils) { |
|
if ($direction eq 'horizontal') { |
|
if ($target ne 'tex') { $result.='<td>'; } |
|
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$result.="<br />"; |
$result.="<br />"; |
} else { |
} else { |
Line 406 sub displayfoils {
|
Line 433 sub displayfoils {
|
} else { |
} else { |
$result.='Incorrect:'; |
$result.='Incorrect:'; |
} |
} |
if ($target ne 'tex') { |
$result.=$Apache::response::foilgroup{$name.'.text'}; |
$result.=$Apache::response::foilgroup{$name.'.text'}."</input>\n"; |
if ($target eq 'web') { $result.="</input>"; } |
} else { |
|
$result.=$Apache::response::foilgroup{$name.'.text'}; |
|
} |
|
if ($Apache::response::foilgroup{$name.'.value'} eq 'true') { |
if ($Apache::response::foilgroup{$name.'.value'} eq 'true') { |
if ($target ne 'tex') { $result.='</b>';} else {$result.='}';} |
if ($target ne 'tex') { $result.='</b>';} else {$result.='}';} |
} |
} |
|
if ($direction eq 'horizontal') { |
|
if ($target ne 'tex') { $result.='</td>'; } |
|
} |
|
} |
|
if ($direction eq 'horizontal') { |
|
if ($target ne 'tex') { |
|
$result.='</tr></table>'; |
|
} |
} |
} |
} else { |
} else { |
my @alphabet = ('A'..'Z'); |
my @alphabet = ('A'..'Z'); |
Line 423 sub displayfoils {
|
Line 455 sub displayfoils {
|
my $part=$Apache::inputtags::part; |
my $part=$Apache::inputtags::part; |
my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"}; |
my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"}; |
my %lastresponse=&Apache::lonnet::str2hash($lastresponse); |
my %lastresponse=&Apache::lonnet::str2hash($lastresponse); |
|
if ($target ne 'tex' && $direction eq 'horizontal') { |
|
$result.="<table><tr>"; |
|
} |
foreach my $name (@whichfoils) { |
foreach my $name (@whichfoils) { |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$result.="<br /><input type=\"radio\" name=\"HWVAL_$Apache::inputtags::response['-1']\" value=\"$temp\" "; |
if ($direction eq 'horizontal') { |
|
$result.="<td>"; |
|
} else { |
|
$result.="<br />"; |
|
} |
|
} |
|
if ($target ne 'tex') { |
|
$result.="<input type=\"radio\" name=\"HWVAL_$Apache::inputtags::response['-1']\" value=\"$temp\" "; |
if (defined($lastresponse{$name})) { $result .= 'checked="on"'; } |
if (defined($lastresponse{$name})) { $result .= 'checked="on"'; } |
$result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>\n"; |
$result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>"; |
} else { |
} else { |
if ($Apache::lonhomework::type eq 'exam') { |
if ($Apache::lonhomework::type eq 'exam') { |
$result .= '{\small \textbf{'.$alphabet[$i].'}}$\bigcirc$'.$Apache::response::foilgroup{$name.'.text'}.'\\\\'; #' stupid emacs |
$result .= '{\small \textbf{'.$alphabet[$i].'}}$\bigcirc$'.$Apache::response::foilgroup{$name.'.text'}.'\\\\'; #' stupid emacs |
Line 436 sub displayfoils {
|
Line 478 sub displayfoils {
|
$result .= '\vspace*{-2 mm}\item '.$Apache::response::foilgroup{$name.'.text'}; |
$result .= '\vspace*{-2 mm}\item '.$Apache::response::foilgroup{$name.'.text'}; |
} |
} |
} |
} |
|
if ($target ne 'tex' && $direction eq 'horizontal') { |
|
$result.="</td>"; |
|
} |
$temp++; |
$temp++; |
} |
} |
|
if ($target ne 'tex' && $direction eq 'horizontal') { |
|
$result.="</tr></table>"; |
|
} |
} |
} |
if ($target ne 'tex') { $result.="<br />"; } else { $result.='\vskip 0 mm '; } |
if ($target ne 'tex') { if ($direction ne 'horizontal') { $result.="<br />";} } else { $result.='\vskip 0 mm '; } |
return $result; |
return $result; |
} |
} |
|
|