--- loncom/homework/optionresponse.pm 2011/10/07 22:39:59 1.181 +++ loncom/homework/optionresponse.pm 2011/11/29 13:24:38 1.183 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: optionresponse.pm,v 1.181 2011/10/07 22:39:59 raeburn Exp $ +# $Id: optionresponse.pm,v 1.183 2011/11/29 13:24:38 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,6 +32,7 @@ package Apache::optionresponse; use strict; +use Apache::inputtags(); use Apache::response(); use Apache::lonlocal; use Apache::lonnet; @@ -209,7 +210,7 @@ sub end_foilgroup { my $randomize = &Apache::lonxml::get_param('randomize',$parstack, $safeeval,'-2'); if ($target eq 'web' || $target eq 'tex') { - $result.=&displayfoils($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,@opt); + $result.=&displayfoils($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,$tex_option_switch,@opt); $Apache::lonxml::post_evaluate=0; } elsif ( $target eq 'answer') { $result.=&displayanswers($max,$randomize,@opt); @@ -282,7 +283,7 @@ sub end_foilgroup { } } my $part=$Apache::inputtags::part; - my $nonlenient=&is_nonlenient($part); + my $nonlenient=&Apache::inputtags::grading_is_nonlenient($part); my $id = $Apache::inputtags::response['-1']; my $responsestr=&Apache::lonnet::hash2str(%responsehash); my $gradestr =&Apache::lonnet::hash2str(%grade); @@ -386,26 +387,6 @@ sub end_foilgroup { return $result; } -sub is_nonlenient { - my ($part) = @_; -# Web mode: we are non-lenient unless told otherwise - my $defaultparm = 'off'; - my $nonlenient = 0; -# Grading a bubblesheet exam: we are grading lenient unless told otherwise - if ($Apache::lonhomework::scantronmode) { - $defaultparm = 'on'; - $nonlenient = 1; - } - my $lenientparm = - &Apache::response::get_response_param($part,'lenient',$defaultparm); - if ($lenientparm=~/^0|off|no$/i) { - $nonlenient = 1; - } elsif ($lenientparm=~/^1|on|yes$/i) { - $nonlenient = 0; - } - return $nonlenient; -} - sub getfoilcounts { my ($max)=@_; # +1 since instructors will count from 1 @@ -485,7 +466,8 @@ sub check_for_invalid { } sub displayfoils { - my ($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices,@opt)=@_; + my ($target,$max,$randomize,$TeXlayout,$checkboxvalue,$checkboxchoices, + $tex_option_switch,@opt)=@_; if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;} my @names = @{ $Apache::response::foilgroup{'names'} }; my @truelist; @@ -495,7 +477,9 @@ sub displayfoils { my $displayoptionintex=1; my @alphabet = ('A'..'Z'); my @whichopt = &whichfoils($max,$randomize); - &check_for_invalid(\@whichopt,\@opt); + unless (($target eq 'tex') && ($tex_option_switch eq 'nochoice')) { + &check_for_invalid(\@whichopt,\@opt); + } my $part=$Apache::inputtags::part; my $id=$Apache::inputtags::response[-1]; my $break;