--- loncom/homework/lonhomework.pm 2005/05/10 20:29:26 1.207 +++ loncom/homework/lonhomework.pm 2005/05/20 18:07:29 1.209 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.207 2005/05/10 20:29:26 albertel Exp $ +# $Id: lonhomework.pm,v 1.209 2005/05/20 18:07:29 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -168,10 +168,12 @@ sub send_footer { sub proctor_checked_in { my ($slot_name,$slot)=@_; my @allowed=split(",",$slot->{'proctor'}); + my $version=$Apache::lonhomework::history{'resource.version'}; foreach my $possible (@allowed) { - if ($Apache::lonhomework::history{'resource.checkedin'} eq $possible && - $Apache::lonhomework::history{'resource.checkedin.slot'} eq - $slot_name ) { + if ($Apache::lonhomework::history{"resource.$version.checkedin"} eq + $possible && + $Apache::lonhomework::history{"resource.$version.checkedin.slot"} + eq $slot_name) { return 1; } } @@ -239,12 +241,10 @@ sub check_task_access { if ($env{'request.state'} eq "construct") { return ($status,$datemsg); } - - if ($Apache::lonhomework::history{'resource.checkedin'}) { - if ($Apache::lonhomework::history{'resource.status'} eq 'pass' || - $Apache::lonhomework::history{'resource.status'} eq 'fail') { - return ('SHOW_ANSWER'); - } + my $version=$Apache::lonhomework::history{'resource.version'}; + if ($Apache::lonhomework::history{"resource.$version.checkedin"} && + $Apache::lonhomework::history{"resource.$version.status"} eq 'pass') { + return ('SHOW_ANSWER'); } my ($id)=@_; my @slots=split(':',&Apache::lonnet::EXT("resource.$id.available")); @@ -272,9 +272,13 @@ sub check_task_access { &Apache::lonxml::debug("protoctor checked in"); $slotstatus='CAN_ANSWER'; } - if ( ($slotstatus eq 'NOT_IN_A_SLOT' || $slotstatus eq 'NEEDS_CHECKIN') && - $Apache::lonhomework::history{'resource.checkedin'}) { - return ('WAITING_FOR_GRADE'); + if ( $slotstatus eq 'NOT_IN_A_SLOT' && + $Apache::lonhomework::history{"resource.$version.checkedin"}) { + if ($Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { + return ('SHOW_ANSWER'); + } else { + return ('WAITING_FOR_GRADE'); + } } return ($slotstatus,$datemsg,$slot_name,$returned_slot); }