--- loncom/homework/response.pm 2011/11/29 17:43:30 1.229 +++ loncom/homework/response.pm 2012/12/18 18:26:41 1.232 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.229 2011/11/29 17:43:30 raeburn Exp $ +# $Id: response.pm,v 1.232 2012/12/18 18:26:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1135,8 +1135,11 @@ sub scored_response { sub whichorder { my ($max,$randomize,$showall,$hash,$rndseed)=@_; #&Apache::lonxml::debug("man $max randomize $randomize"); - if (!defined(@{ $$hash{'names'} })) { return; } - my @names = @{ $$hash{'names'} }; + my @names; + if (ref($hash->{'names'}) eq 'ARRAY') { + @names = @{$hash->{'names'}}; + } + return if (!@names); my @whichopt =(); my (%top,@toplist,%bottom,@bottomlist); if (!($showall || ($randomize eq 'no'))) { @@ -1189,8 +1192,8 @@ sub show_answer { my $status = $Apache::inputtags::status[-1]; my $canshow = 0; if ($award =~ /^correct/) { - if ((&Apache::inputtags::grading_is_nonlenient($part)) || - ($Apache::lonhomework::history{"resource.$part.awarded"} == 1)) { + if (($Apache::lonhomework::history{"resource.$part.awarded"} >= 1) || + (&Apache::lonnet::EXT("resource.$part.retrypartial") !~/^1|on|yes$/)) { $canshow = 1; } } @@ -1223,8 +1226,11 @@ sub check_if_computed { sub pick_foil_for_concept { my ($target,$attrs,$hinthash,$parstack,$safeeval)=@_; - if (not defined(@{ $Apache::response::conceptgroup{'names'} })) { return; } - my @names = @{ $Apache::response::conceptgroup{'names'} }; + my @names; + if (ref($Apache::response::conceptgroup{'names'}) eq 'ARRAY') { + @names = @{ $Apache::response::conceptgroup{'names'} }; + } + return if (!@names); my $pick=int(&Math::Random::random_uniform() * ($#names+1)); my $name=$names[$pick]; push @{ $Apache::response::foilgroup{'names'} }, $name;