--- loncom/homework/structuretags.pm 2005/11/18 20:29:13 1.323 +++ loncom/homework/structuretags.pm 2005/11/21 21:51:29 1.324 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.323 2005/11/18 20:29:13 albertel Exp $ +# $Id: structuretags.pm,v 1.324 2005/11/21 21:51:29 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -613,17 +613,22 @@ sub start_problem { } $form_tag_start.='
'; } - ($status,$accessmsg) = &Apache::lonhomework::check_access('0'); + + ($status,$accessmsg,my $slot_name,my $slot) = + &Apache::lonhomework::check_slot_access('0','problem'); push (@Apache::inputtags::status,$status); + my $expression='$external::datestatus="'.$status.'";'; $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.0.solved"}.'";'; &Apache::run::run($expression,$safeeval); &Apache::lonxml::debug("Got $status"); + if (( $status eq 'CLOSED' ) || ( $status eq 'UNCHECKEDOUT') || ( $status eq 'NOT_YET_VIEWED') || ( $status eq 'BANNED') || ( $status eq 'UNAVAILABLE') || + ( $status eq 'NOT_IN_A_SLOT') || ( $status eq 'INVALID_ACCESS')) { my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser); if ( $target eq "web" ) { @@ -650,6 +655,16 @@ sub start_problem { $result.=&mt('Problem is not open to be viewed. It')." $accessmsg \\vskip 0 mm "; } } + } elsif ($status eq 'NEEDS_CHECKIN') { + my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser); + if ($target eq 'web') { + $result .= $head_tag_start.''; + $result .= $body_tag_start; + $result .= &Apache::bridgetask::proctor_validation_screen(); + } elsif ($target eq 'grade') { + &Apache::bridgetask::proctor_check_auth($slot_name,$slot, + 'problem'); + } } elsif ($target eq 'web') { my $name= &get_resource_name($parstack,$safeeval); $result.="$head_tag_start$name @@ -792,6 +807,8 @@ sub end_problem { # if part is zero, no s existed, so we need to the grading if ($status eq 'CAN_ANSWER' ||$Apache::lonhomework::scantronmode) { &Apache::inputtags::grade; + } elsif ($status eq 'NEEDS_CHECKIN') { + # no need to grade, and don't want to hide data } else { # move any submission data to .hidden &Apache::inputtags::hidealldata($Apache::inputtags::part);