--- loncom/homework/response.pm 2015/10/30 03:49:47 1.244 +++ loncom/homework/response.pm 2018/09/02 16:51:51 1.244.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.244 2015/10/30 03:49:47 raeburn Exp $ +# $Id: response.pm,v 1.244.2.1 2018/09/02 16:51:51 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1343,10 +1343,12 @@ basically undef and 0 (both false) mean and all true values mean that they can't do any more work a return of undef means it is unattempted - a return of 0 means it is attmpted and wrong but still has tries + a return of 0 means it is both attempted and still has tries and + is wrong or is only partially correct, and retries + are allowed. a return of 1 means it is marked correct - a return of 2 means they have exceed maximum number of tries - a return of 3 means it after the answer date + a return of 2 means they have exceeded maximum number of tries + a return of 3 means it is after the answer date =cut @@ -1363,7 +1365,13 @@ sub check_status { return 3; } my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); - if ($status =~ /^correct/) { return 1; } + if ($status =~ /^correct/) { + my $awarded=&Apache::lonnet::EXT("user.resource.resource.$id.awarded"); + my $retrypartial=&Apache::lonnet::EXT("resource.$id.retrypartial"); + unless (($retrypartial =~ /^1|on|yes$/) && ($awarded <1)) { + return 1; + } + } if (!$status) { return undef; } my $maxtries=&Apache::lonnet::EXT("resource.$id.maxtries"); if ($maxtries eq '') { $maxtries=2; }