--- loncom/homework/response.pm 2011/11/29 17:43:30 1.229 +++ loncom/homework/response.pm 2014/02/13 12:43:50 1.235 @@ -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.235 2014/02/13 12:43:50 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -399,7 +399,7 @@ sub end_dataresponse { $Apache::lonhomework::results{"resource.$partid.$id.awarddetail"}='SUBMITTED'; } } else { - $result='Not Permitted to change values.' + $result=&mt('Not Permitted to change values'); } } } @@ -469,6 +469,18 @@ sub end_customresponse { $error = $award; $award = 'ERROR'; } + if (($award eq 'INCORRECT' || $award eq 'APPROX_ANS' || + $award eq 'EXACT_ANS')) { + if ($Apache::lonhomework::type eq 'survey') { + $award='SUBMITTED'; + } elsif ($Apache::lonhomework::type eq 'surveycred') { + $award='SUBMITTED_CREDIT'; + } elsif ($Apache::lonhomework::type eq 'anonsurvey') { + $award='ANONYMOUS'; + } elsif ($Apache::lonhomework::type eq 'anonsurveycred') { + $award='ANONYMOUS_CREDIT'; + } + } &Apache::response::handle_previous(\%previous,$award); $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}= $award; @@ -574,7 +586,7 @@ sub edit_mathresponse_button { function edit_${id}_${field} (textarea) { thenumber = textarea; thedata = document.forms['lonhomework'].elements[textarea].value; - newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable"); + newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable"); } $button @@ -614,6 +626,18 @@ sub end_mathresponse { $error = $award; $award = 'ERROR'; } + if (($award eq 'INCORRECT' || $award eq 'APPROX_ANS' || + $award eq 'EXACT_ANS')) { + if ($Apache::lonhomework::type eq 'survey') { + $award='SUBMITTED'; + } elsif ($Apache::lonhomework::type eq 'surveycred') { + $award='SUBMITTED_CREDIT'; + } elsif ($Apache::lonhomework::type eq 'anonsurvey') { + $award='ANONYMOUS'; + } elsif ($Apache::lonhomework::type eq 'anonsurveycred') { + $award='ANONYMOUS_CREDIT'; + } + } &Apache::response::handle_previous(\%previous,$award); $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}= $award; @@ -839,8 +863,8 @@ sub answer_header { if ($Apache::lonhomework::type eq 'exam') { $bit = ($Apache::lonxml::counter+$increment).') '; } else { - $bit .= ' Answer for Part: \verb|'. - $Apache::inputtags::part.'| '; + $bit .= ' '.&mt('Answer for Part: [_1]', + '\verb|'.$Apache::inputtags::part.'|').' '; } push(@answer_bits,$bit); } else { @@ -1135,8 +1159,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 +1216,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 +1250,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;