--- loncom/homework/response.pm 2021/01/12 15:57:18 1.244.2.3 +++ loncom/homework/response.pm 2018/03/30 23:50:13 1.245 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.244.2.3 2021/01/12 15:57:18 raeburn Exp $ +# $Id: response.pm,v 1.245 2018/03/30 23:50:13 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -265,10 +265,15 @@ sub mandatory_part_meta { } sub meta_part_order { + my ($type) = @_; if (@Apache::inputtags::partlist) { my @parts=@Apache::inputtags::partlist; - shift(@parts); + unless ($type eq 'library') { + shift(@parts); + } return ''.join(',',@parts).''."\n"; + } elsif ($type eq 'library') { + return ''."\n"; } else { return '0'."\n"; } @@ -468,8 +473,8 @@ sub end_customresponse { $error = $award; $award = 'ERROR'; } - if (($award eq 'INCORRECT') || ($award eq 'APPROX_ANS') || - ($award eq 'EXACT_ANS') || ($award eq 'ASSIGNED_SCORE')) { + 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') { @@ -1307,7 +1312,7 @@ sub submitted { return 1; } # Submit All button on a .page was pressed - if ($env{'form.all_submit'}) { return 1; } + if (defined($env{'form.all_submit'})) { return 1; } # otherwise no submission occurred return 0; } @@ -1343,12 +1348,10 @@ 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 both attempted and still has tries and - is wrong or is only partially correct, and retries - are allowed. + a return of 0 means it is attmpted and wrong but still has tries a return of 1 means it is marked correct - a return of 2 means they have exceeded maximum number of tries - a return of 3 means it is after the answer date + a return of 2 means they have exceed maximum number of tries + a return of 3 means it after the answer date =cut @@ -1365,13 +1368,7 @@ sub check_status { return 3; } my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); - 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 =~ /^correct/) { return 1; } if (!$status) { return undef; } my $maxtries=&Apache::lonnet::EXT("resource.$id.maxtries"); if ($maxtries eq '') { $maxtries=2; }