--- loncom/homework/radiobuttonresponse.pm 2009/05/23 05:04:58 1.143
+++ loncom/homework/radiobuttonresponse.pm 2011/09/16 22:23:54 1.152
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# mutliple choice style responses
#
-# $Id: radiobuttonresponse.pm,v 1.143 2009/05/23 05:04:58 onken Exp $
+# $Id: radiobuttonresponse.pm,v 1.152 2011/09/16 22:23:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -105,8 +105,7 @@ sub start_radiobuttonresponse {
$result .= ' \renewcommand{\labelenumi}{\Alph{enumi}.}';
}
if($env{'form.pdfFormFields'} eq 'yes' && $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
- $result .= &Apache::lonxml::print_pdf_hiddenfield('meta', $env{'user.name'}, $env{'user.domain'});
- $result .= "\n\\\\\n\\\\\n";
+ $result .= '\begin{itemize}';
} else {
$result .= '\begin{enumerate}';
}
@@ -122,8 +121,12 @@ sub end_radiobuttonresponse {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
if ($target eq 'edit') { $result=&Apache::edit::end_table(); }
- if ($target eq 'tex' and ($env{'form.pdfFormFields'} ne 'yes' or $Apache::inputtags::status[-1] ne 'CAN_ANSWER')) {
- $result .= '\end{enumerate}';
+ if ($target eq 'tex' ) {
+ if($env{'form.pdfFormFields'} eq 'yes' and $Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
+ $result .= '\end{itemize}';
+ } else {
+ $result .= '\end{enumerate}';
+ }
}
&Apache::response::end_response;
pop @Apache::lonxml::namespace;
@@ -135,17 +138,14 @@ sub end_radiobuttonresponse {
%Apache::response::foilgroup=();
sub start_foilgroup {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
- my $result;
%Apache::response::foilgroup=();
$Apache::radiobuttonresponse::conceptgroup=0;
- &Apache::response::pushrandomnumber();
- if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') {
- $result.='\item[\textbf{'.$Apache::lonxml::counter.'}.]';
- }
- return $result;
+ &Apache::response::pushrandomnumber(undef,$target);
+ return;
}
sub storesurvey {
+ my ($style) = @_;
if ( !&Apache::response::submitted() ) { return ''; }
my $response = $env{'form.HWVAL_'.$Apache::inputtags::response['-1']};
&Apache::lonxml::debug("Here I am!:$response:");
@@ -159,7 +159,16 @@ sub storesurvey {
$Apache::lonhomework::results{"resource.$part.$id.submission"}=
$responsestr;
my %previous=&Apache::response::check_for_previous($responsestr,$part,$id);
- my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+ my $ad;
+ if ($style eq 'anonsurvey') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='ANONYMOUS';
+ } elsif ($style eq 'anonsurveycred') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='ANONYMOUS_CREDIT';
+ } elsif ($style eq 'surveycred') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED_CREDIT';
+ } else {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+ }
&Apache::response::handle_previous(\%previous,$ad);
&Apache::lonxml::debug("submitted a $response
\n");
return '';
@@ -209,28 +218,25 @@ sub end_foilgroup {
my $result;
my $bubble_lines;
- my $bubbles_per_line;
my $answer_count;
my $id = $Apache::inputtags::response['-1'];
my $part = $Apache::inputtags::part;
- $bubbles_per_line =
- &Apache::response::get_response_param($Apache::inputtags::part."_$id",
- 'numbubbles',
- $default_bubbles_per_line);
-
+ my $bubbles_per_line = &getbubblesnum($part,$id);
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
$target eq 'tex' || $target eq 'analyze') {
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') || ($style eq 'surveycred') ||
+ ($style eq 'anonsurvey') || ($style eq 'anonsurveycred'))
+ && ($target ne 'analyze')) {
if ($target eq 'web' || $target eq 'tex') {
$result=&displayallfoils($direction, $target);
} elsif ( $target eq 'answer' ) {
$result=&displayallanswers();
} elsif ( $target eq 'grade' ) {
- $result=&storesurvey();
+ $result=&storesurvey($style);
}
$answer_count = scalar(@{$Apache::response::foilgroup{'names'}});
@@ -245,7 +251,7 @@ sub end_foilgroup {
$answer_count = scalar(@shown);
if ($target eq 'web' || $target eq 'tex') {
- $result=&displayfoils($target,
+ $result=&displayfoils($target,
$answer, \@shown,
$direction,
$bubbles_per_line);
@@ -280,6 +286,20 @@ sub end_foilgroup {
return $result;
}
+sub getbubblesnum {
+ my ($part,$id) = @_;
+ my $bubbles_per_line;
+ my $default_numbubbles = $default_bubbles_per_line;
+ if (($env{'form.bubbles_per_row'} =~ /^\d+$/) &&
+ ($env{'form.bubbles_per_row'} > 0)) {
+ $default_numbubbles = $env{'form.bubbles_per_row'};
+ }
+ $bubbles_per_line =
+ &Apache::response::get_response_param($part."_$id",'numbubbles',
+ $default_numbubbles);
+ return $bubbles_per_line;
+}
+
sub getfoilcounts {
my @names;
my $truecnt=0;
@@ -321,11 +341,24 @@ sub displayallfoils {
my $i =0;
my $id=$Apache::inputtags::response['-1'];
my $part=$Apache::inputtags::part;
- my $lastresponse=
- $Apache::lonhomework::history{"resource.$part.$id.submission"};
+ my ($lastresponse,$newvariation,$showanswer);
+ if ((($Apache::lonhomework::history{"resource.$part.type"} eq 'randomizetry') ||
+ ($Apache::lonhomework::type eq 'randomizetry')) &&
+ ($Apache::inputtags::status[-1] eq 'CAN_ANSWER')) {
+ if ($env{'form.'.$part.'.rndseed'} ne
+ $Apache::lonhomework::history{"resource.$part.rndseed"}) {
+ $newvariation = 1;
+ }
+ }
+ $showanswer = &Apache::response::show_answer();
+ unless ((($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurvey') || ($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurveycred')) && (defined($env{'form.grade_symb'})) ||
+ ($newvariation && !$showanswer)) {
+ $lastresponse =
+ $Apache::lonhomework::history{"resource.$part.$id.submission"};
+ }
if ($direction eq 'horizontal') { $result.='